2 types derived from ComplexTypeSpec
Microsoft.Extensions.Configuration.Binder.SourceGeneration (2)
Specs\Types\CollectionSpec.cs (1)
9
internal abstract record CollectionSpec :
ComplexTypeSpec
Specs\Types\ObjectSpec.cs (1)
9
public sealed record ObjectSpec :
ComplexTypeSpec
41 references to ComplexTypeSpec
Microsoft.Extensions.Configuration.Binder.SourceGeneration (41)
Emitter\ConfigurationBinder.cs (1)
148
foreach ((
ComplexTypeSpec
type, ImmutableEquatableArray<InvocationLocationInfo> locations) in interceptorInfo)
Emitter\CoreBindingHelpers.cs (19)
136
case
ComplexTypeSpec
complexType:
228
foreach (
ComplexTypeSpec
type in targetTypes)
230
ComplexTypeSpec
effectiveType = (
ComplexTypeSpec
)_typeIndex.GetEffectiveTypeSpec(type);
251
if (_bindingHelperInfo.TypesForGen_BindCore is not ImmutableEquatableArray<
ComplexTypeSpec
> types)
256
foreach (
ComplexTypeSpec
type in types)
264
private void EmitBindCoreMethod(
ComplexTypeSpec
type)
267
ComplexTypeSpec
effectiveType = (
ComplexTypeSpec
)_typeIndex.GetEffectiveTypeSpec(type);
739
case
ComplexTypeSpec
complexType when _typeIndex.CanInstantiate(complexType):
806
case
ComplexTypeSpec
complexElementType:
941
private bool ShouldEmitBoundThroughConstructorParameter(
ComplexTypeSpec
type) =>
971
case
ComplexTypeSpec
complexType:
978
private bool IsBindableAsMember(
ComplexTypeSpec
complexType, bool canSet) =>
1086
case
ComplexTypeSpec
complexType:
1133
ComplexTypeSpec
effectiveMemberType = (
ComplexTypeSpec
)_typeIndex.GetEffectiveTypeSpec(memberType);
1238
ComplexTypeSpec
type,
1408
private bool EmitObjectInit(
ComplexTypeSpec
type, string memberAccessExpr, InitializationKind initKind, string configArgExpr)
Parser\ConfigurationBinder.cs (1)
262
if (typeSpec is
ComplexTypeSpec
complexTypeSpec &&
Parser\OptionsBuilderConfigurationExtensions.cs (1)
91
if (typeSpec is not
ComplexTypeSpec
complexTypeSpec)
Parser\OptionsConfigurationServiceCollectionExtensions.cs (2)
83
if (typeSpec is
ComplexTypeSpec
complexTypeSpec &&
90
private bool TryRegisterTypeForOverloadGen_ServiceCollectionExt(MethodsToGen overload,
ComplexTypeSpec
typeSpec)
Specs\BindingHelperInfo.cs (8)
18
public required ImmutableEquatableArray<
ComplexTypeSpec
>? TypesForGen_BindCoreMain { get; init; }
21
public required ImmutableEquatableArray<
ComplexTypeSpec
>? TypesForGen_BindCore { get; init; }
52
TypesForGen_BindCoreMain = GetTypesForGen_CoreBindingHelper<
ComplexTypeSpec
>(MethodsToGen_CoreBindingHelper.BindCoreMain),
54
TypesForGen_BindCore = GetTypesForGen_CoreBindingHelper<
ComplexTypeSpec
>(MethodsToGen_CoreBindingHelper.BindCore),
101
public bool TryRegisterTypeForBindCoreMainGen(
ComplexTypeSpec
type)
164
if (_typeIndex.GetTypeSpec(collectionSpec.ElementTypeRef) is
ComplexTypeSpec
)
206
if (_typeIndex.GetTypeSpec(property.TypeRef) is
ComplexTypeSpec
)
236
private bool TryRegisterTypeForBindCoreGen(
ComplexTypeSpec
type)
Specs\InterceptorInfo.cs (5)
65
public void RegisterInterceptor_ConfigBinder_Bind(MethodsToGen overload,
ComplexTypeSpec
type, IInvocationOperation invocation)
136
private readonly Dictionary<
ComplexTypeSpec
, TypedInterceptorInvocationInfo.Builder> _invocationInfoBuilderCache = new();
138
public void RegisterInterceptor(MethodsToGen overload,
ComplexTypeSpec
type, IInvocationOperation invocation)
154
public sealed record TypedInterceptorInvocationInfo(
ComplexTypeSpec
TargetType, ImmutableEquatableArray<InvocationLocationInfo> Locations)
156
public sealed class Builder(MethodsToGen Overload,
ComplexTypeSpec
TargetType)
Specs\TypeIndex.cs (4)
19
ComplexTypeSpec
complexTypeSpec => CanInstantiate(complexTypeSpec) || HasBindableMembers(complexTypeSpec),
23
public bool CanInstantiate(
ComplexTypeSpec
typeSpec) => typeSpec switch
37
public bool HasBindableMembers(
ComplexTypeSpec
typeSpec) =>
59
ComplexTypeSpec
elementSpec => CanInstantiate(elementSpec),