1 write to _knownSymbols
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
80_knownSymbols = knownSymbols;
127 references to _knownSymbols
System.Text.Json.SourceGeneration (127)
JsonSourceGenerator.Parser.cs (127)
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); 255Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 256Debug.Assert(_knownSymbols.JsonSourceGenerationOptionsAttributeType != null); 265if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSerializableAttributeType)) 275else if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSourceGenerationOptionsAttributeType)) 296Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); 303if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonSerializableAttributeType)) 574if (location is null || !_knownSymbols.Compilation.ContainsLocation(location)) 582Type = _knownSymbols.Compilation.EraseCompileTimeMetadata(typeSymbol), 656Debug.Assert(_knownSymbols.JsonStringEnumConverterOfTType != null); 657INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 692constructorSetsRequiredMembers = defaultCtor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 711bool useDefaultCtorInAnnotatedStructs = type.GetCompatibleGenericBaseType(_knownSymbols.KeyValuePair) is null; 722implementsIJsonOnSerializing = _knownSymbols.IJsonOnSerializingType.IsAssignableFrom(type); 723implementsIJsonOnSerialized = _knownSymbols.IJsonOnSerializedType.IsAssignableFrom(type); 829&& _knownSymbols.UnsafeAccessorAttributeType is not null 831|| _knownSymbols.SupportsGenericUnsafeAccessors), 880if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonNumberHandlingAttributeType)) 885else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnmappedMemberHandlingAttributeType)) 890else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonObjectCreationHandlingAttributeType)) 895else if (_knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 911else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 917if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonIgnoreAttributeType)) 938if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonDerivedTypeAttributeType)) 976else if (SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonPolymorphicAttributeType)) 1004SymbolEqualityComparer.Default.Equals(attributeType, _knownSymbols.JsonUnionAttributeType)) 1184if (!_knownSymbols.Compilation.TryValidateGenericConstraints(requiredParams, successfulSubstitution, out ITypeParameterSymbol? failedParam, out ITypeSymbol? failedArg)) 1304SymbolEqualityComparer.Default.Equals(valueProperty.Type, _knownSymbols.ObjectType)) 1444ITypeSymbol root = _knownSymbols.Compilation.GetSpecialType(SpecialType.System_Void); 1577SymbolEqualityComparer.Default.Equals(type, _knownSymbols.HalfType) || 1578SymbolEqualityComparer.Default.Equals(type, _knownSymbols.Int128Type) || 1579SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UInt128Type)) 1590SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateTimeOffsetType) || 1591SymbolEqualityComparer.Default.Equals(type, _knownSymbols.DateOnlyType) || 1592SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeOnlyType) || 1593SymbolEqualityComparer.Default.Equals(type, _knownSymbols.TimeSpanType) || 1594SymbolEqualityComparer.Default.Equals(type, _knownSymbols.GuidType) || 1595SymbolEqualityComparer.Default.Equals(type, _knownSymbols.UriType) || 1596SymbolEqualityComparer.Default.Equals(type, _knownSymbols.VersionType) || 1613if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonElementType) || 1614SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonDocumentType) || 1615SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonNodeType) || 1616SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType) || 1617SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonValueType)) 1622if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonArrayType)) 1629if (type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType) is not null || 1630type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType) is not null || 1631_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1664SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.MemoryType); 1670SymbolEqualityComparer.Default.Equals(named.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType); 1674INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1693INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 1728if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.MemoryType)) 1730Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.MemoryByteType)); 1736if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition, _knownSymbols.ReadOnlyMemoryType)) 1738Debug.Assert(!SymbolEqualityComparer.Default.Equals(type, _knownSymbols.ReadOnlyMemoryByteType)); 1745if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 1752if (!_knownSymbols.IEnumerableType.IsAssignableFrom(type)) 1764else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.KeyedCollectionType)) != null) 1769else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ListOfTType)) != null) 1774else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.DictionaryOfTKeyTValueType)) != null) 1780else if (_knownSymbols.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName)) 1787else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType)) != null) 1794else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType)) != null) 1801else if (_knownSymbols.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName)) 1806else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IListOfTType)) != null) 1811else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ISetOfTType)) != null) 1816else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IReadOnlySetOfTType)) != null) 1821else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ICollectionOfTType)) != null) 1826else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.StackOfTType)) != null) 1831else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.QueueOfTType)) != null) 1836else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentStackType)) != null) 1841else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.ConcurrentQueueType)) != null) 1846else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(_knownSymbols.IEnumerableOfTType)) != null) 1851else if (_knownSymbols.IDictionaryType.IsAssignableFrom(type)) 1854keyType = _knownSymbols.StringType; 1855valueType = _knownSymbols.ObjectType; 1858else if (_knownSymbols.IListType.IsAssignableFrom(type)) 1861valueType = _knownSymbols.ObjectType; 1863else if (_knownSymbols.StackType.IsAssignableFrom(type)) 1866valueType = _knownSymbols.ObjectType; 1868else if (_knownSymbols.QueueType.IsAssignableFrom(type)) 1871valueType = _knownSymbols.ObjectType; 1876valueType = _knownSymbols.ObjectType; 1884INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 2076if (SymbolEqualityComparer.Default.Equals(type, _knownSymbols.JsonObjectType)) 2081INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 2084if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 2085(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 2086SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 2094INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 2097if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0], _knownSymbols.StringType) && 2098(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) || 2099SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.JsonElementType))) 2102INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 2103? _knownSymbols.StringObjectDictionaryType 2104: _knownSymbols.StringJsonElementDictionaryType; 2108Conversion conversion = _knownSymbols.Compilation.ClassifyConversion(dictionaryType, type); 2251CanUseUnsafeAccessors = _knownSymbols.UnsafeAccessorAttributeType is not null 2253|| _knownSymbols.SupportsGenericUnsafeAccessors), 2254OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 2256OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 2258DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType && _knownSymbols.SupportsGenericUnsafeAccessors 2260DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 && _knownSymbols.SupportsGenericUnsafeAccessors 2308if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) 2312else if (memberNamingPolicy is null && _knownSymbols.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true) 2511constructorSetsRequiredMembers = constructor?.ContainsAttribute(_knownSymbols.SetsRequiredMembersAttributeType) == true; 2647Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); 2649if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass, _knownSymbols.JsonConverterAttributeType)) 2684!_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || 2691if (_knownSymbols.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType)) 2705!_knownSymbols.JsonTypeClassifierFactoryType.IsAssignableFrom(namedClassifierType) || 2895cmp.Equals(type, _knownSymbols.DateTimeOffsetType) || cmp.Equals(type, _knownSymbols.GuidType)) 2900if (cmp.Equals(type, _knownSymbols.ByteArrayType)) 2963if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 2982if (constructor.ContainsAttribute(_knownSymbols.JsonConstructorAttributeType)) 3006=> _knownSymbols.Compilation.IsSymbolAccessibleWithin(symbol, within); 3011SymbolEqualityComparer.Default.Equals(_knownSymbols.SerializationInfoType, type) || 3012SymbolEqualityComparer.Default.Equals(_knownSymbols.IntPtrType, type) || 3013SymbolEqualityComparer.Default.Equals(_knownSymbols.UIntPtrType, type) || 3014_knownSymbols.MemberInfoType.IsAssignableFrom(type) || 3015_knownSymbols.DelegateType.IsAssignableFrom(type) ||