4 types derived from TypeSpec
ConfigurationSchemaGenerator (4)
RuntimeSource\Configuration.Binder\Specs\Types\SimpleTypeSpec.cs (1)
8
public abstract record SimpleTypeSpec :
TypeSpec
RuntimeSource\Configuration.Binder\Specs\Types\TypeSpec.cs (3)
41
public abstract record ComplexTypeSpec :
TypeSpec
46
internal sealed record NullableSpec :
TypeSpec
52
internal sealed record UnsupportedTypeSpec :
TypeSpec
55 references to TypeSpec
ConfigurationSchemaGenerator (55)
ConfigSchemaEmitter.cs (11)
36
private readonly Stack<
TypeSpec
> _visitedTypes = new();
87
var
type = spec.ConfigurationTypes[i];
101
private bool GeneratePathSegment(JsonObject currentNode,
TypeSpec
type, Queue<string> pathSegments)
182
private bool GenerateType(JsonObject currentNode,
TypeSpec
type)
193
var
effectiveType = _typeIndex.GetTypeSpec(nullable.EffectiveTypeRef);
277
var
propertyType = _typeIndex.GetTypeSpec(property.TypeRef);
322
var
elementType = _typeIndex.GetTypeSpec(collection.ElementTypeRef);
378
private IPropertySymbol? GetPropertySymbol(
TypeSpec
type, PropertySpec property)
391
private static bool ShouldSkipProperty(PropertySpec property,
TypeSpec
propertyType, IPropertySymbol? propertySymbol)
490
private void GenerateDescriptionForType(JsonObject currentNode,
TypeSpec
type)
597
var
enumTypeSpec = _typeIndex.GetTypeSpec(parsable.TypeRef);
ConfigurationBindingGenerator.ForSchemaGeneration.cs (4)
42
var types = new List<
TypeSpec
>();
64
private
TypeSpec
CreateTopTypeSpec(CancellationToken cancellationToken)
67
TypeSpec
result = null;
76
TypeSpec
currentResult;
RuntimeSource\Configuration.Binder\ConfigurationBindingGenerator.Parser.cs (11)
26
private readonly Dictionary<ITypeSymbol,
TypeSpec
> _createdTypeSpecs = new(SymbolEqualityComparer.Default);
126
TypeSpec
typeSpec = _createdTypeSpecs[typeParseInfo.TypeSymbol];
163
if (_createdTypeSpecs.TryGetValue(memberTypeSymbol, out
TypeSpec
? memberTypeSpec))
173
private
TypeSpec
CreateTypeSpec(TypeParseInfo typeParseInfo)
176
TypeSpec
spec;
337
private
TypeSpec
CreateArraySpec(TypeParseInfo typeParseInfo)
362
private
TypeSpec
CreateCollectionSpec(TypeParseInfo typeParseInfo)
366
TypeSpec
spec;
381
private
TypeSpec
CreateDictionarySpec(TypeParseInfo typeParseInfo, ITypeSymbol keyTypeSymbol, ITypeSymbol elementTypeSymbol)
443
private
TypeSpec
CreateEnumerableSpec(TypeParseInfo typeParseInfo)
889
private void RecordTypeDiagnosticIfRequired(TypeParseInfo typeParseInfo,
TypeSpec
typeSpec)
RuntimeSource\Configuration.Binder\Parser\ConfigurationBinder.cs (1)
254
private void RegisterInterceptor_ConfigurationBinder(TypeParseInfo typeParseInfo,
TypeSpec
typeSpec)
RuntimeSource\Configuration.Binder\Parser\OptionsBuilderConfigurationExtensions.cs (1)
86
private void RegisterInterceptor_OptionsBuilderExt(TypeParseInfo typeParseInfo,
TypeSpec
typeSpec)
RuntimeSource\Configuration.Binder\Parser\OptionsConfigurationServiceCollectionExtensions.cs (1)
79
private void RegisterInterceptor_ServiceCollectionExt(TypeParseInfo typeParseInfo,
TypeSpec
typeSpec)
RuntimeSource\Configuration.Binder\Specs\BindingHelperInfo.cs (14)
19
public required ImmutableEquatableArray<
TypeSpec
>? TypesForGen_GetCore { get; init; }
20
public required ImmutableEquatableArray<
TypeSpec
>? TypesForGen_GetValueCore { get; init; }
32
private readonly Dictionary<MethodsToGen_CoreBindingHelper, HashSet<
TypeSpec
>> _typesForGen = new();
51
TypesForGen_GetCore = GetTypesForGen_CoreBindingHelper<
TypeSpec
>(MethodsToGen_CoreBindingHelper.GetCore),
53
TypesForGen_GetValueCore = GetTypesForGen_CoreBindingHelper<
TypeSpec
>(MethodsToGen_CoreBindingHelper.GetValueCore),
60
where TSpec :
TypeSpec
, IEquatable<TSpec>
62
_typesForGen.TryGetValue(overload, out HashSet<
TypeSpec
>? typesAsBase);
69
IEnumerable<TSpec> types = typeof(TSpec) == typeof(
TypeSpec
)
77
where TSpec :
TypeSpec
, IEquatable<TSpec> =>
81
public bool TryRegisterTypeForGetGen(
TypeSpec
type)
93
public bool TryRegisterTypeForGetValueGen(
TypeSpec
typeSpec)
207
private void RegisterTypeForMethodGen(MethodsToGen_CoreBindingHelper method,
TypeSpec
type)
209
if (!_typesForGen.TryGetValue(method, out HashSet<
TypeSpec
>? types))
211
_typesForGen[method] = types = new HashSet<
TypeSpec
>();
RuntimeSource\Configuration.Binder\Specs\SourceGenerationSpec.cs (1)
12
public required ImmutableEquatableArray<
TypeSpec
> ConfigTypes { get; init; }
RuntimeSource\Configuration.Binder\Specs\TypeIndex.cs (9)
12
internal sealed class TypeIndex(IEnumerable<
TypeSpec
> typeSpecs)
14
private readonly Dictionary<TypeRef,
TypeSpec
> _index = typeSpecs.ToDictionary(spec => spec.TypeRef);
42
TypeSpec
propTypeSpec = GetEffectiveTypeSpec(property.TypeRef);
56
public
TypeSpec
GetEffectiveTypeSpec(TypeRef typeRef)
58
TypeSpec
typeSpec = GetTypeSpec(typeRef);
62
public
TypeSpec
GetEffectiveTypeSpec(
TypeSpec
typeSpec)
65
TypeSpec
effectiveSpec = effectiveRef == typeSpec.TypeRef ? typeSpec : _index[effectiveRef];
69
public
TypeSpec
GetTypeSpec(TypeRef typeRef) => _index[typeRef];
SchemaGenerationSpec.cs (2)
11
public required List<
TypeSpec
> ConfigurationTypes { get; init; }
15
public required ImmutableEquatableArray<
TypeSpec
> AllTypes { get; init; }