1 write to _knownSymbols
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
80_knownSymbols = knownSymbols;
133 references to _knownSymbols
System.Text.Json.SourceGeneration (133)
JsonSourceGenerator.Parser.cs (133)
69if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 97Debug.Assert(_knownSymbols.JsonSerializerContextType != null); 110if (!_knownSymbols.JsonSerializerContextType.IsAssignableFrom(contextTypeSymbol)) 139LanguageVersion? langVersion = _knownSymbols.Compilation.GetLanguageVersion(); 231type = _knownSymbols.Compilation.EraseCompileTimeMetadata(type); 323Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 324Debug.Assert(_knownSymbols.JsonSourceGenerationOptionsAttributeType != null); 333if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSerializableAttributeType)) 343else if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSourceGenerationOptionsAttributeType)) 364Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 371if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonSerializableAttributeType)) 658if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 666Type = _knownSymbols.Compilation.EraseCompileTimeMetadata(typeSymbol), 751Debug.Assert(_knownSymbols.JsonStringEnumConverterOfTType != null); 752INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 787constructorSetsRequiredMembers = defaultCtor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 812bool useDefaultCtorInAnnotatedStructs = type.GetCompatibleGenericBaseType(_knownSymbols.KeyValuePair) is null; 823implementsIJsonOnSerializing = _knownSymbols.IJsonOnSerializingType.IsAssignableFrom(type); 824implementsIJsonOnSerialized = _knownSymbols.IJsonOnSerializedType.IsAssignableFrom(type); 941&& _knownSymbols.UnsafeAccessorAttributeType is not null 943|| _knownSymbols.SupportsGenericUnsafeAccessors), 1003if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonNumberHandlingAttributeType)) 1008else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnmappedMemberHandlingAttributeType)) 1013else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonObjectCreationHandlingAttributeType)) 1018else if (_knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 1034else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 1040if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonIgnoreAttributeType)) 1061if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonDerivedTypeAttributeType)) 1085else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonPolymorphicAttributeType)) 1117SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnionAttributeType)) 1259derivedType = resolvedDerivedType ?? _knownSymbols.ObjectType; 1270derivedType = _knownSymbols.ObjectType; 1479if (!_knownSymbols.Compilation.TryValidateGenericConstraints(requiredParams, successfulSubstitution, out ITypeParameterSymbol? failedParam, out ITypeSymbol? failedArg)) 1599SymbolEqualityComparer.Default.Equals(valueProperty.Type, _knownSymbols.ObjectType)) 1742ITypeSymbol root = _knownSymbols.Compilation.GetSpecialType(SpecialType.System_Void); 1869SymbolEqualityComparer.Default.Equals(type, _knownSymbols.HalfType) || 1870SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Int128Type) || 1871SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UInt128Type) || 1872SymbolEqualityComparer.Default.Equals(type, _knownSymbols.BFloat16Type) || 1873SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Decimal32Type) || 1874SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Decimal64Type) || 1875SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Decimal128Type)) 1886SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateTimeOffsetType) || 1887SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateOnlyType) || 1888SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeOnlyType) || 1889SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeSpanType) || 1890SymbolEqualityComparer.Default.Equals(type, _knownSymbols.GuidType) || 1891SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UriType) || 1892SymbolEqualityComparer.Default.Equals(type, _knownSymbols.VersionType) || 1909if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonElementType) || 1910SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonDocumentType) || 1911SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonNodeType) || 1912SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonValueType) || 1918if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 1923if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonArrayType)) 1930if (type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType) is not null || 1931type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType) is not null || 1932_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1965SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.MemoryType); 1971SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType); 1975INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1994INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 2029if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.MemoryType)) 2031Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.MemoryByteType)); 2037if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType)) 2039Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.ReadOnlyMemoryByteType)); 2046if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 2053if (!_knownSymbols.IEnumerableType.IsAssignableFrom(type)) 2065else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.KeyedCollectionType)) != null) 2070else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ListOfTType)) != null) 2075else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.DictionaryOfTKeyTValueType)) != null) 2081else if (_knownSymbols.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName)) 2088else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType)) != null) 2095else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType)) != null) 2102else if (_knownSymbols.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName)) 2107else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IListOfTType)) != null) 2112else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ISetOfTType)) != null) 2117else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadOnlySetOfTType)) != null) 2122else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ICollectionOfTType)) != null) 2127else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.StackOfTType)) != null) 2132else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.QueueOfTType)) != null) 2137else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentStackType)) != null) 2142else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentQueueType)) != null) 2147else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IEnumerableOfTType)) != null) 2152else if (_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 2155keyType = _knownSymbols.StringType; 2156valueType = _knownSymbols.ObjectType; 2159else if (_knownSymbols.IListType.IsAssignableFrom(type)) 2162valueType = _knownSymbols.ObjectType; 2164else if (_knownSymbols.StackType.IsAssignableFrom(type)) 2167valueType = _knownSymbols.ObjectType; 2169else if (_knownSymbols.QueueType.IsAssignableFrom(type)) 2172valueType = _knownSymbols.ObjectType; 2177valueType = _knownSymbols.ObjectType; 2185INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 2376if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 2381INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 2384if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 2385(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 2386SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 2394INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 2397if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 2398(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 2399SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 2402INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 2403? _knownSymbols.StringObjectDictionaryType 2404: _knownSymbols.StringJsonElementDictionaryType; 2408Conversion conversion = _knownSymbols.Compilation.ClassifyConversion(dictionaryType, type); 2569CanUseUnsafeAccessors = _knownSymbols.UnsafeAccessorAttributeType is not null 2571|| _knownSymbols.SupportsGenericUnsafeAccessors), 2572OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 2574OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 2576DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType && _knownSymbols.SupportsGenericUnsafeAccessors 2578DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 && _knownSymbols.SupportsGenericUnsafeAccessors 2627if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 2631else if (memberNamingPolicy is null && _knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 2821constructorSetsRequiredMembers = constructor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 2966Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); 2968if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonConverterAttributeType)) 3005!_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || 3012if (_knownSymbols.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType)) 3032!_knownSymbols.JsonTypeClassifierFactoryType.IsAssignableFrom(namedClassifierType) || 3226cmp.Equals(type, _knownSymbols.DateTimeOffsetType) || cmp.Equals(type, _knownSymbols.GuidType)) 3231if (cmp.Equals(type, _knownSymbols.ByteArrayType)) 3294if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 3313if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 3337=> _knownSymbols.Compilation.IsSymbolAccessibleWithin(symbol, within); 3342SymbolEqualityComparer.Default.Equals(_knownSymbols.SerializationInfoType, type) || 3343SymbolEqualityComparer.Default.Equals(_knownSymbols.IntPtrType, type) || 3344SymbolEqualityComparer.Default.Equals(_knownSymbols.UIntPtrType, type) || 3345_knownSymbols.MemberInfoType.IsAssignableFrom(type) || 3346_knownSymbols.DelegateType.IsAssignableFrom(type) ||