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);
828
&&
_knownSymbols
.UnsafeAccessorAttributeType is not null
830
||
_knownSymbols
.SupportsGenericUnsafeAccessors),
879
if (SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonNumberHandlingAttributeType))
884
else if (SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonUnmappedMemberHandlingAttributeType))
889
else if (SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonObjectCreationHandlingAttributeType))
894
else if (
_knownSymbols
.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true)
910
else if (!foundJsonConverterAttribute &&
_knownSymbols
.JsonConverterAttributeType.IsAssignableFrom(attributeType))
916
if (SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonIgnoreAttributeType))
937
if (SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonDerivedTypeAttributeType))
961
else if (SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonPolymorphicAttributeType))
989
SymbolEqualityComparer.Default.Equals(attributeType,
_knownSymbols
.JsonUnionAttributeType))
1084
SymbolEqualityComparer.Default.Equals(valueProperty.Type,
_knownSymbols
.ObjectType))
1224
ITypeSymbol root =
_knownSymbols
.Compilation.GetSpecialType(SpecialType.System_Void);
1357
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.HalfType) ||
1358
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.Int128Type) ||
1359
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.UInt128Type))
1370
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.DateTimeOffsetType) ||
1371
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.DateOnlyType) ||
1372
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.TimeOnlyType) ||
1373
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.TimeSpanType) ||
1374
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.GuidType) ||
1375
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.UriType) ||
1376
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.VersionType) ||
1393
if (SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonElementType) ||
1394
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonDocumentType) ||
1395
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonNodeType) ||
1396
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonObjectType) ||
1397
SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonValueType))
1402
if (SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonArrayType))
1409
if (type.GetCompatibleGenericBaseType(
_knownSymbols
.IDictionaryOfTKeyTValueType) is not null ||
1410
type.GetCompatibleGenericBaseType(
_knownSymbols
.IReadonlyDictionaryOfTKeyTValueType) is not null ||
1411
_knownSymbols
.IDictionaryType.IsAssignableFrom(type))
1444
SymbolEqualityComparer.Default.Equals(named.OriginalDefinition,
_knownSymbols
.MemoryType);
1450
SymbolEqualityComparer.Default.Equals(named.OriginalDefinition,
_knownSymbols
.ReadOnlyMemoryType);
1454
INamedTypeSymbol? converterAttr =
_knownSymbols
.JsonConverterAttributeType;
1473
INamedTypeSymbol? numberHandlingAttr =
_knownSymbols
.JsonNumberHandlingAttributeType;
1508
if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition,
_knownSymbols
.MemoryType))
1510
Debug.Assert(!SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.MemoryByteType));
1516
if (SymbolEqualityComparer.Default.Equals(type.OriginalDefinition,
_knownSymbols
.ReadOnlyMemoryType))
1518
Debug.Assert(!SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.ReadOnlyMemoryByteType));
1525
if (type.GetCompatibleGenericBaseType(
_knownSymbols
.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType)
1532
if (!
_knownSymbols
.IEnumerableType.IsAssignableFrom(type))
1544
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.KeyedCollectionType)) != null)
1549
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.ListOfTType)) != null)
1554
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.DictionaryOfTKeyTValueType)) != null)
1560
else if (
_knownSymbols
.IsImmutableDictionaryType(type, out immutableCollectionFactoryTypeFullName))
1567
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.IDictionaryOfTKeyTValueType)) != null)
1574
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.IReadonlyDictionaryOfTKeyTValueType)) != null)
1581
else if (
_knownSymbols
.IsImmutableEnumerableType(type, out immutableCollectionFactoryTypeFullName))
1586
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.IListOfTType)) != null)
1591
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.ISetOfTType)) != null)
1596
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.IReadOnlySetOfTType)) != null)
1601
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.ICollectionOfTType)) != null)
1606
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.StackOfTType)) != null)
1611
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.QueueOfTType)) != null)
1616
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.ConcurrentStackType)) != null)
1621
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.ConcurrentQueueType)) != null)
1626
else if ((actualTypeToConvert = type.GetCompatibleGenericBaseType(
_knownSymbols
.IEnumerableOfTType)) != null)
1631
else if (
_knownSymbols
.IDictionaryType.IsAssignableFrom(type))
1634
keyType =
_knownSymbols
.StringType;
1635
valueType =
_knownSymbols
.ObjectType;
1638
else if (
_knownSymbols
.IListType.IsAssignableFrom(type))
1641
valueType =
_knownSymbols
.ObjectType;
1643
else if (
_knownSymbols
.StackType.IsAssignableFrom(type))
1646
valueType =
_knownSymbols
.ObjectType;
1648
else if (
_knownSymbols
.QueueType.IsAssignableFrom(type))
1651
valueType =
_knownSymbols
.ObjectType;
1656
valueType =
_knownSymbols
.ObjectType;
1664
INamedTypeSymbol? dictionary =
_knownSymbols
.DictionaryOfTKeyTValueType?.Construct(keyType, valueType);
1856
if (SymbolEqualityComparer.Default.Equals(type,
_knownSymbols
.JsonObjectType))
1861
INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(
_knownSymbols
.IDictionaryOfTKeyTValueType);
1864
if (SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[0],
_knownSymbols
.StringType) &&
1865
(SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1],
_knownSymbols
.ObjectType) ||
1866
SymbolEqualityComparer.Default.Equals(actualDictionaryType.TypeArguments[1],
_knownSymbols
.JsonElementType)))
1874
INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(
_knownSymbols
.IReadonlyDictionaryOfTKeyTValueType);
1877
if (SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[0],
_knownSymbols
.StringType) &&
1878
(SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1],
_knownSymbols
.ObjectType) ||
1879
SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1],
_knownSymbols
.JsonElementType)))
1882
INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1],
_knownSymbols
.ObjectType)
1883
?
_knownSymbols
.StringObjectDictionaryType
1884
:
_knownSymbols
.StringJsonElementDictionaryType;
1888
Conversion conversion =
_knownSymbols
.Compilation.ClassifyConversion(dictionaryType, type);
2031
CanUseUnsafeAccessors =
_knownSymbols
.UnsafeAccessorAttributeType is not null
2033
||
_knownSymbols
.SupportsGenericUnsafeAccessors),
2034
OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } &&
_knownSymbols
.SupportsGenericUnsafeAccessors
2036
OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } &&
_knownSymbols
.SupportsGenericUnsafeAccessors
2038
DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType &&
_knownSymbols
.SupportsGenericUnsafeAccessors
2040
DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 &&
_knownSymbols
.SupportsGenericUnsafeAccessors
2088
if (converterType is null &&
_knownSymbols
.JsonConverterAttributeType.IsAssignableFrom(attributeType))
2092
else if (memberNamingPolicy is null &&
_knownSymbols
.JsonNamingPolicyAttributeType?.IsAssignableFrom(attributeType) == true)
2291
constructorSetsRequiredMembers = constructor?.ContainsAttribute(
_knownSymbols
.SetsRequiredMembersAttributeType) == true;
2427
Debug.Assert(
_knownSymbols
.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass));
2429
if (!SymbolEqualityComparer.Default.Equals(attributeData.AttributeClass,
_knownSymbols
.JsonConverterAttributeType))
2464
!
_knownSymbols
.JsonConverterType.IsAssignableFrom(namedConverterType) ||
2471
if (
_knownSymbols
.JsonStringEnumConverterType.IsAssignableFrom(namedConverterType))
2485
!
_knownSymbols
.JsonTypeClassifierFactoryType.IsAssignableFrom(namedClassifierType) ||
2675
cmp.Equals(type,
_knownSymbols
.DateTimeOffsetType) || cmp.Equals(type,
_knownSymbols
.GuidType))
2680
if (cmp.Equals(type,
_knownSymbols
.ByteArrayType))
2743
if (constructor.ContainsAttribute(
_knownSymbols
.JsonConstructorAttributeType))
2762
if (constructor.ContainsAttribute(
_knownSymbols
.JsonConstructorAttributeType))
2786
=>
_knownSymbols
.Compilation.IsSymbolAccessibleWithin(symbol, within);
2791
SymbolEqualityComparer.Default.Equals(
_knownSymbols
.SerializationInfoType, type) ||
2792
SymbolEqualityComparer.Default.Equals(
_knownSymbols
.IntPtrType, type) ||
2793
SymbolEqualityComparer.Default.Equals(
_knownSymbols
.UIntPtrType, type) ||
2794
_knownSymbols
.MemberInfoType.IsAssignableFrom(type) ||
2795
_knownSymbols
.DelegateType.IsAssignableFrom(type) ||