1 write to _knownSymbols
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
77_knownSymbols = knownSymbols;
98 references to _knownSymbols
System.Text.Json.SourceGeneration (98)
JsonSourceGenerator.Parser.cs (98)
66if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 94Debug.Assert(_knownSymbols.JsonSerializerContextType != null); 107if (!_knownSymbols.JsonSerializerContextType.IsAssignableFrom(contextTypeSymbol)) 136LanguageVersion? langVersion = _knownSymbols.Compilation.GetLanguageVersion(); 228type = _knownSymbols.Compilation.EraseCompileTimeMetadata(type); 252Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 253Debug.Assert(_knownSymbols.JsonSourceGenerationOptionsAttributeType != null); 262if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSerializableAttributeType)) 272else if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSourceGenerationOptionsAttributeType)) 293Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 300if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonSerializableAttributeType)) 555if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 563Type = _knownSymbols.Compilation.EraseCompileTimeMetadata(typeSymbol), 633Debug.Assert(_knownSymbols.JsonStringEnumConverterOfTType != null); 634INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 669constructorSetsRequiredMembers = defaultCtor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 688bool useDefaultCtorInAnnotatedStructs = type.GetCompatibleGenericBaseType(_knownSymbols.KeyValuePair) is null; 699implementsIJsonOnSerializing = _knownSymbols.IJsonOnSerializingType.IsAssignableFrom(type); 700implementsIJsonOnSerialized = _knownSymbols.IJsonOnSerializedType.IsAssignableFrom(type); 749&& _knownSymbols.UnsafeAccessorAttributeType is not null 751|| _knownSymbols.SupportsGenericUnsafeAccessors), 788if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonNumberHandlingAttributeType)) 793else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnmappedMemberHandlingAttributeType)) 798else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonObjectCreationHandlingAttributeType)) 803else if (_knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 819else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 825if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonIgnoreAttributeType)) 846if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonDerivedTypeAttributeType)) 877if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.MemoryType)) 879Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.MemoryByteType)); 885if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType)) 887Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.ReadOnlyMemoryByteType)); 894if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 901if (!_knownSymbols.IEnumerableType.IsAssignableFrom(type)) 913else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.KeyedCollectionType)) != null) 918else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ListOfTType)) != null) 923else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.DictionaryOfTKeyTValueType)) != null) 929else if (_knownSymbols.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName)) 936else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType)) != null) 943else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType)) != null) 950else if (_knownSymbols.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName)) 955else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IListOfTType)) != null) 960else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ISetOfTType)) != null) 965else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadOnlySetOfTType)) != null) 970else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ICollectionOfTType)) != null) 975else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.StackOfTType)) != null) 980else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.QueueOfTType)) != null) 985else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentStackType)) != null) 990else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentQueueType)) != null) 995else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IEnumerableOfTType)) != null) 1000else if (_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1003keyType = _knownSymbols.StringType; 1004valueType = _knownSymbols.ObjectType; 1007else if (_knownSymbols.IListType.IsAssignableFrom(type)) 1010valueType = _knownSymbols.ObjectType; 1012else if (_knownSymbols.StackType.IsAssignableFrom(type)) 1015valueType = _knownSymbols.ObjectType; 1017else if (_knownSymbols.QueueType.IsAssignableFrom(type)) 1020valueType = _knownSymbols.ObjectType; 1025valueType = _knownSymbols.ObjectType; 1033INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 1225if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 1230INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 1233if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 1234(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 1235SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 1243INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 1246if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 1247(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 1248SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 1251INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 1252? _knownSymbols.StringObjectDictionaryType 1253: _knownSymbols.StringJsonElementDictionaryType; 1257Conversion conversion = _knownSymbols.Compilation.ClassifyConversion(dictionaryType, type); 1400CanUseUnsafeAccessors = _knownSymbols.UnsafeAccessorAttributeType is not null 1402|| _knownSymbols.SupportsGenericUnsafeAccessors), 1403OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 1405OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 1407DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType && _knownSymbols.SupportsGenericUnsafeAccessors 1409DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 && _knownSymbols.SupportsGenericUnsafeAccessors 1457if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 1461else if (memberNamingPolicy is null && _knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 1660constructorSetsRequiredMembers = constructor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 1796Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); 1798if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonConverterAttributeType)) 1833!_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || 1840if (_knownSymbols.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType)) 2027cmp.Equals(type, _knownSymbols.DateTimeOffsetType) || cmp.Equals(type, _knownSymbols.GuidType)) 2032if (cmp.Equals(type, _knownSymbols.ByteArrayType)) 2095if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2114if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2138=> _knownSymbols.Compilation.IsSymbolAccessibleWithin(symbol, within); 2143SymbolEqualityComparer.Default.Equals(_knownSymbols.SerializationInfoType, type) || 2144SymbolEqualityComparer.Default.Equals(_knownSymbols.IntPtrType, type) || 2145SymbolEqualityComparer.Default.Equals(_knownSymbols.UIntPtrType, type) || 2146_knownSymbols.MemberInfoType.IsAssignableFrom(type) || 2147_knownSymbols.DelegateType.IsAssignableFrom(type) ||