1 write to _knownSymbols
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
83_knownSymbols = knownSymbols;
129 references to _knownSymbols
System.Text.Json.SourceGeneration (129)
JsonSourceGenerator.Parser.cs (129)
72if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 100Debug.Assert(_knownSymbols.JsonSerializerContextType != null); 114if (!_knownSymbols.JsonSerializerContextType.IsAssignableFrom(contextTypeSymbol)) 143LanguageVersion? langVersion = _knownSymbols.Compilation.GetLanguageVersion(); 202type = _knownSymbols.Compilation.EraseCompileTimeMetadata(type); 294Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 295Debug.Assert(_knownSymbols.JsonSourceGenerationOptionsAttributeType != null); 304if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSerializableAttributeType)) 314else if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSourceGenerationOptionsAttributeType)) 335Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 342if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonSerializableAttributeType)) 629if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 637Type = _knownSymbols.Compilation.EraseCompileTimeMetadata(typeSymbol), 722Debug.Assert(_knownSymbols.JsonStringEnumConverterOfTType != null); 723INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 758constructorSetsRequiredMembers = defaultCtor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 783bool useDefaultCtorInAnnotatedStructs = type.GetCompatibleGenericBaseType(_knownSymbols.KeyValuePair) is null; 794implementsIJsonOnSerializing = _knownSymbols.IJsonOnSerializingType.IsAssignableFrom(type); 795implementsIJsonOnSerialized = _knownSymbols.IJsonOnSerializedType.IsAssignableFrom(type); 884&& _knownSymbols.SupportsGenericUnsafeAccessors 921&& _knownSymbols.UnsafeAccessorAttributeType is not null 983if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonNumberHandlingAttributeType)) 988else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnmappedMemberHandlingAttributeType)) 993else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonObjectCreationHandlingAttributeType)) 998else if (_knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 1014else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 1020if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonIgnoreAttributeType)) 1041if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonDerivedTypeAttributeType)) 1065else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonPolymorphicAttributeType)) 1097SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnionAttributeType)) 1241derivedType = resolvedDerivedType ?? _knownSymbols.ObjectType; 1252derivedType = _knownSymbols.ObjectType; 1461if (!_knownSymbols.Compilation.TryValidateGenericConstraints(requiredParams, successfulSubstitution, out ITypeParameterSymbol? failedParam, out ITypeSymbol? failedArg)) 1581SymbolEqualityComparer.Default.Equals(valueProperty.Type, _knownSymbols.ObjectType)) 1724ITypeSymbol root = _knownSymbols.Compilation.GetSpecialType(SpecialType.System_Void); 1853SymbolEqualityComparer.Default.Equals(type, _knownSymbols.HalfType) || 1854SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Int128Type) || 1855SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UInt128Type) || 1856SymbolEqualityComparer.Default.Equals(type, _knownSymbols.BFloat16Type) || 1857SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Decimal32Type) || 1858SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Decimal64Type) || 1859SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Decimal128Type)) 1870SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateTimeOffsetType) || 1871SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateOnlyType) || 1872SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeOnlyType) || 1873SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeSpanType) || 1874SymbolEqualityComparer.Default.Equals(type, _knownSymbols.GuidType) || 1875SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UriType) || 1876SymbolEqualityComparer.Default.Equals(type, _knownSymbols.VersionType) || 1893if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonElementType) || 1894SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonDocumentType) || 1895SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonNodeType) || 1896SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonValueType) || 1902if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 1907if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonArrayType)) 1914if (type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType) is not null || 1915type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType) is not null || 1916_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1949SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.MemoryType); 1955SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType); 1959INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1978INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 2012if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.MemoryType)) 2014Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.MemoryByteType)); 2020if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType)) 2022Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.ReadOnlyMemoryByteType)); 2029if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 2036if (!_knownSymbols.IEnumerableType.IsAssignableFrom(type)) 2048else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.KeyedCollectionType)) != null) 2053else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ListOfTType)) != null) 2058else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.DictionaryOfTKeyTValueType)) != null) 2064else if (_knownSymbols.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName)) 2071else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType)) != null) 2078else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType)) != null) 2085else if (_knownSymbols.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName)) 2090else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IListOfTType)) != null) 2095else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ISetOfTType)) != null) 2100else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadOnlySetOfTType)) != null) 2105else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ICollectionOfTType)) != null) 2110else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.StackOfTType)) != null) 2115else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.QueueOfTType)) != null) 2120else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentStackType)) != null) 2125else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentQueueType)) != null) 2130else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IEnumerableOfTType)) != null) 2135else if (_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 2138keyType = _knownSymbols.StringType; 2139valueType = _knownSymbols.ObjectType; 2142else if (_knownSymbols.IListType.IsAssignableFrom(type)) 2145valueType = _knownSymbols.ObjectType; 2147else if (_knownSymbols.StackType.IsAssignableFrom(type)) 2150valueType = _knownSymbols.ObjectType; 2152else if (_knownSymbols.QueueType.IsAssignableFrom(type)) 2155valueType = _knownSymbols.ObjectType; 2160valueType = _knownSymbols.ObjectType; 2168INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 2362if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 2367INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 2370if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 2371(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 2372SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 2380INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 2383if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 2384(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 2385SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 2388INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 2389? _knownSymbols.StringObjectDictionaryType 2390: _knownSymbols.StringJsonElementDictionaryType; 2394Conversion conversion = _knownSymbols.Compilation.ClassifyConversion(dictionaryType, type); 2536&& _knownSymbols.SupportsGenericUnsafeAccessors 2562CanUseUnsafeAccessors = _knownSymbols.UnsafeAccessorAttributeType is not null 2619if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 2623else if (memberNamingPolicy is null && _knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 2813constructorSetsRequiredMembers = constructor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 2960Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); 2962if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonConverterAttributeType)) 2999!_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || 3006if (_knownSymbols.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType)) 3026!_knownSymbols.JsonTypeClassifierFactoryType.IsAssignableFrom(namedClassifierType) || 3220cmp.Equals(type, _knownSymbols.DateTimeOffsetType) || cmp.Equals(type, _knownSymbols.GuidType)) 3225if (cmp.Equals(type, _knownSymbols.ByteArrayType)) 3288if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 3307if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 3331=> _knownSymbols.Compilation.IsSymbolAccessibleWithin(symbol, within); 3336SymbolEqualityComparer.Default.Equals(_knownSymbols.SerializationInfoType, type) || 3337SymbolEqualityComparer.Default.Equals(_knownSymbols.IntPtrType, type) || 3338SymbolEqualityComparer.Default.Equals(_knownSymbols.UIntPtrType, type) || 3339_knownSymbols.MemberInfoType.IsAssignableFrom(type) || 3340_knownSymbols.DelegateType.IsAssignableFrom(type) ||