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