1 write to _knownSymbols
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
79_knownSymbols = knownSymbols;
126 references to _knownSymbols
System.Text.Json.SourceGeneration (126)
JsonSourceGenerator.Parser.cs (126)
68if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 96Debug.Assert(_knownSymbols.JsonSerializerContextType != null); 109if (!_knownSymbols.JsonSerializerContextType.IsAssignableFrom(contextTypeSymbol)) 138LanguageVersion? langVersion = _knownSymbols.Compilation.GetLanguageVersion(); 230type = _knownSymbols.Compilation.EraseCompileTimeMetadata(type); 254Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 255Debug.Assert(_knownSymbols.JsonSourceGenerationOptionsAttributeType != null); 264if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSerializableAttributeType)) 274else if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSourceGenerationOptionsAttributeType)) 295Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 302if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonSerializableAttributeType)) 573if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 581Type = _knownSymbols.Compilation.EraseCompileTimeMetadata(typeSymbol), 655Debug.Assert(_knownSymbols.JsonStringEnumConverterOfTType != null); 656INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 691constructorSetsRequiredMembers = defaultCtor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 710bool useDefaultCtorInAnnotatedStructs = type.GetCompatibleGenericBaseType(_knownSymbols.KeyValuePair) is null; 721implementsIJsonOnSerializing = _knownSymbols.IJsonOnSerializingType.IsAssignableFrom(type); 722implementsIJsonOnSerialized = _knownSymbols.IJsonOnSerializedType.IsAssignableFrom(type); 828&& _knownSymbols.UnsafeAccessorAttributeType is not null 830|| _knownSymbols.SupportsGenericUnsafeAccessors), 879if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonNumberHandlingAttributeType)) 884else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnmappedMemberHandlingAttributeType)) 889else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonObjectCreationHandlingAttributeType)) 894else if (_knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 910else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 916if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonIgnoreAttributeType)) 937if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonDerivedTypeAttributeType)) 961else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonPolymorphicAttributeType)) 989SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnionAttributeType)) 1084SymbolEqualityComparer.Default.Equals(valueProperty.Type, _knownSymbols.ObjectType)) 1224ITypeSymbol root = _knownSymbols.Compilation.GetSpecialType(SpecialType.System_Void); 1357SymbolEqualityComparer.Default.Equals(type, _knownSymbols.HalfType) || 1358SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Int128Type) || 1359SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UInt128Type)) 1370SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateTimeOffsetType) || 1371SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateOnlyType) || 1372SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeOnlyType) || 1373SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeSpanType) || 1374SymbolEqualityComparer.Default.Equals(type, _knownSymbols.GuidType) || 1375SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UriType) || 1376SymbolEqualityComparer.Default.Equals(type, _knownSymbols.VersionType) || 1393if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonElementType) || 1394SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonDocumentType) || 1395SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonNodeType) || 1396SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType) || 1397SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonValueType)) 1402if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonArrayType)) 1409if (type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType) is not null || 1410type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType) is not null || 1411_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1444SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.MemoryType); 1450SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType); 1454INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1473INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 1508if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.MemoryType)) 1510Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.MemoryByteType)); 1516if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType)) 1518Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.ReadOnlyMemoryByteType)); 1525if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 1532if (!_knownSymbols.IEnumerableType.IsAssignableFrom(type)) 1544else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.KeyedCollectionType)) != null) 1549else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ListOfTType)) != null) 1554else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.DictionaryOfTKeyTValueType)) != null) 1560else if (_knownSymbols.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName)) 1567else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType)) != null) 1574else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType)) != null) 1581else if (_knownSymbols.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName)) 1586else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IListOfTType)) != null) 1591else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ISetOfTType)) != null) 1596else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadOnlySetOfTType)) != null) 1601else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ICollectionOfTType)) != null) 1606else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.StackOfTType)) != null) 1611else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.QueueOfTType)) != null) 1616else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentStackType)) != null) 1621else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentQueueType)) != null) 1626else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IEnumerableOfTType)) != null) 1631else if (_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1634keyType = _knownSymbols.StringType; 1635valueType = _knownSymbols.ObjectType; 1638else if (_knownSymbols.IListType.IsAssignableFrom(type)) 1641valueType = _knownSymbols.ObjectType; 1643else if (_knownSymbols.StackType.IsAssignableFrom(type)) 1646valueType = _knownSymbols.ObjectType; 1648else if (_knownSymbols.QueueType.IsAssignableFrom(type)) 1651valueType = _knownSymbols.ObjectType; 1656valueType = _knownSymbols.ObjectType; 1664INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 1856if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 1861INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 1864if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 1865(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 1866SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 1874INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 1877if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 1878(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 1879SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 1882INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 1883? _knownSymbols.StringObjectDictionaryType 1884: _knownSymbols.StringJsonElementDictionaryType; 1888Conversion conversion = _knownSymbols.Compilation.ClassifyConversion(dictionaryType, type); 2031CanUseUnsafeAccessors = _knownSymbols.UnsafeAccessorAttributeType is not null 2033|| _knownSymbols.SupportsGenericUnsafeAccessors), 2034OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 2036OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 2038DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType && _knownSymbols.SupportsGenericUnsafeAccessors 2040DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 && _knownSymbols.SupportsGenericUnsafeAccessors 2088if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 2092else if (memberNamingPolicy is null && _knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 2291constructorSetsRequiredMembers = constructor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 2427Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); 2429if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonConverterAttributeType)) 2464!_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || 2471if (_knownSymbols.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType)) 2485!_knownSymbols.JsonTypeClassifierFactoryType.IsAssignableFrom(namedClassifierType) || 2675cmp.Equals(type, _knownSymbols.DateTimeOffsetType) || cmp.Equals(type, _knownSymbols.GuidType)) 2680if (cmp.Equals(type, _knownSymbols.ByteArrayType)) 2743if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2762if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2786=> _knownSymbols.Compilation.IsSymbolAccessibleWithin(symbol, within); 2791SymbolEqualityComparer.Default.Equals(_knownSymbols.SerializationInfoType, type) || 2792SymbolEqualityComparer.Default.Equals(_knownSymbols.IntPtrType, type) || 2793SymbolEqualityComparer.Default.Equals(_knownSymbols.UIntPtrType, type) || 2794_knownSymbols.MemberInfoType.IsAssignableFrom(type) || 2795_knownSymbols.DelegateType.IsAssignableFrom(type) ||