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); 812&& _knownSymbols.UnsafeAccessorAttributeType is not null 814|| _knownSymbols.SupportsGenericUnsafeAccessors), 863if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonNumberHandlingAttributeType)) 868else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnmappedMemberHandlingAttributeType)) 873else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonObjectCreationHandlingAttributeType)) 878else if (_knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 894else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 900if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonIgnoreAttributeType)) 921if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonDerivedTypeAttributeType)) 945else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonPolymorphicAttributeType)) 973SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnionAttributeType)) 1068SymbolEqualityComparer.Default.Equals(valueProperty.Type, _knownSymbols.ObjectType)) 1157ITypeSymbol root = _knownSymbols.Compilation.GetSpecialType(SpecialType.System_Void); 1290SymbolEqualityComparer.Default.Equals(type, _knownSymbols.HalfType) || 1291SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Int128Type) || 1292SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UInt128Type)) 1303SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateTimeOffsetType) || 1304SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateOnlyType) || 1305SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeOnlyType) || 1306SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeSpanType) || 1307SymbolEqualityComparer.Default.Equals(type, _knownSymbols.GuidType) || 1308SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UriType) || 1309SymbolEqualityComparer.Default.Equals(type, _knownSymbols.VersionType) || 1326if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonElementType) || 1327SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonDocumentType) || 1328SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonNodeType) || 1329SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType) || 1330SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonValueType)) 1335if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonArrayType)) 1342if (type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType) is not null || 1343type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType) is not null || 1344_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1377SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.MemoryType); 1383SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType); 1387INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1406INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 1441if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.MemoryType)) 1443Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.MemoryByteType)); 1449if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType)) 1451Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.ReadOnlyMemoryByteType)); 1458if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 1465if (!_knownSymbols.IEnumerableType.IsAssignableFrom(type)) 1477else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.KeyedCollectionType)) != null) 1482else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ListOfTType)) != null) 1487else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.DictionaryOfTKeyTValueType)) != null) 1493else if (_knownSymbols.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName)) 1500else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType)) != null) 1507else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType)) != null) 1514else if (_knownSymbols.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName)) 1519else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IListOfTType)) != null) 1524else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ISetOfTType)) != null) 1529else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadOnlySetOfTType)) != null) 1534else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ICollectionOfTType)) != null) 1539else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.StackOfTType)) != null) 1544else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.QueueOfTType)) != null) 1549else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentStackType)) != null) 1554else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentQueueType)) != null) 1559else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IEnumerableOfTType)) != null) 1564else if (_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1567keyType = _knownSymbols.StringType; 1568valueType = _knownSymbols.ObjectType; 1571else if (_knownSymbols.IListType.IsAssignableFrom(type)) 1574valueType = _knownSymbols.ObjectType; 1576else if (_knownSymbols.StackType.IsAssignableFrom(type)) 1579valueType = _knownSymbols.ObjectType; 1581else if (_knownSymbols.QueueType.IsAssignableFrom(type)) 1584valueType = _knownSymbols.ObjectType; 1589valueType = _knownSymbols.ObjectType; 1597INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 1789if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 1794INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 1797if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 1798(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 1799SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 1807INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 1810if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 1811(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 1812SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 1815INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 1816? _knownSymbols.StringObjectDictionaryType 1817: _knownSymbols.StringJsonElementDictionaryType; 1821Conversion conversion = _knownSymbols.Compilation.ClassifyConversion(dictionaryType, type); 1964CanUseUnsafeAccessors = _knownSymbols.UnsafeAccessorAttributeType is not null 1966|| _knownSymbols.SupportsGenericUnsafeAccessors), 1967OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 1969OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 1971DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType && _knownSymbols.SupportsGenericUnsafeAccessors 1973DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 && _knownSymbols.SupportsGenericUnsafeAccessors 2021if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 2025else if (memberNamingPolicy is null && _knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 2224constructorSetsRequiredMembers = constructor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 2360Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); 2362if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonConverterAttributeType)) 2397!_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || 2404if (_knownSymbols.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType)) 2418!_knownSymbols.JsonTypeClassifierFactoryType.IsAssignableFrom(namedClassifierType) || 2608cmp.Equals(type, _knownSymbols.DateTimeOffsetType) || cmp.Equals(type, _knownSymbols.GuidType)) 2613if (cmp.Equals(type, _knownSymbols.ByteArrayType)) 2676if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2695if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2719=> _knownSymbols.Compilation.IsSymbolAccessibleWithin(symbol, within); 2724SymbolEqualityComparer.Default.Equals(_knownSymbols.SerializationInfoType, type) || 2725SymbolEqualityComparer.Default.Equals(_knownSymbols.IntPtrType, type) || 2726SymbolEqualityComparer.Default.Equals(_knownSymbols.UIntPtrType, type) || 2727_knownSymbols.MemberInfoType.IsAssignableFrom(type) || 2728_knownSymbols.DelegateType.IsAssignableFrom(type) ||