2 types derived from ComplexTypeSpec
Microsoft.Extensions.Configuration.Binder.SourceGeneration (2)
Specs\Types\CollectionSpec.cs (1)
9internal abstract record CollectionSpec : ComplexTypeSpec
Specs\Types\ObjectSpec.cs (1)
9public sealed record ObjectSpec : ComplexTypeSpec
39 references to ComplexTypeSpec
Microsoft.Extensions.Configuration.Binder.SourceGeneration (39)
Emitter\ConfigurationBinder.cs (1)
145foreach ((ComplexTypeSpec type, ImmutableEquatableArray<InvocationLocationInfo> locations) in interceptorInfo)
Emitter\CoreBindingHelpers.cs (18)
136case ComplexTypeSpec complexType: 228foreach (ComplexTypeSpec type in targetTypes) 230ComplexTypeSpec effectiveType = (ComplexTypeSpec)_typeIndex.GetEffectiveTypeSpec(type); 248if (_bindingHelperInfo.TypesForGen_BindCore is not ImmutableEquatableArray<ComplexTypeSpec> types) 253foreach (ComplexTypeSpec type in types) 261private void EmitBindCoreMethod(ComplexTypeSpec type) 264ComplexTypeSpec effectiveType = (ComplexTypeSpec)_typeIndex.GetEffectiveTypeSpec(type); 736case ComplexTypeSpec complexType when _typeIndex.CanInstantiate(complexType): 803case ComplexTypeSpec complexElementType: 938private bool ShouldEmitBoundThroughConstructorParameter(ComplexTypeSpec type) => 968case ComplexTypeSpec complexType: 1082case ComplexTypeSpec complexType: 1132ComplexTypeSpec effectiveMemberType = (ComplexTypeSpec)_typeIndex.GetEffectiveTypeSpec(memberType); 1230ComplexTypeSpec type, 1390private bool EmitObjectInit(ComplexTypeSpec type, string memberAccessExpr, InitializationKind initKind, string configArgExpr)
Parser\ConfigurationBinder.cs (1)
262if (typeSpec is ComplexTypeSpec complexTypeSpec &&
Parser\OptionsBuilderConfigurationExtensions.cs (1)
91if (typeSpec is not ComplexTypeSpec complexTypeSpec)
Parser\OptionsConfigurationServiceCollectionExtensions.cs (2)
83if (typeSpec is ComplexTypeSpec complexTypeSpec && 90private bool TryRegisterTypeForOverloadGen_ServiceCollectionExt(MethodsToGen overload, ComplexTypeSpec typeSpec)
Specs\BindingHelperInfo.cs (8)
18public required ImmutableEquatableArray<ComplexTypeSpec>? TypesForGen_BindCoreMain { get; init; } 21public required ImmutableEquatableArray<ComplexTypeSpec>? TypesForGen_BindCore { get; init; } 52TypesForGen_BindCoreMain = GetTypesForGen_CoreBindingHelper<ComplexTypeSpec>(MethodsToGen_CoreBindingHelper.BindCoreMain), 54TypesForGen_BindCore = GetTypesForGen_CoreBindingHelper<ComplexTypeSpec>(MethodsToGen_CoreBindingHelper.BindCore), 101public bool TryRegisterTypeForBindCoreMainGen(ComplexTypeSpec type) 154if (_typeIndex.GetTypeSpec(collectionSpec.ElementTypeRef) is ComplexTypeSpec) 196if (_typeIndex.GetTypeSpec(property.TypeRef) is ComplexTypeSpec) 226private bool TryRegisterTypeForBindCoreGen(ComplexTypeSpec type)
Specs\InterceptorInfo.cs (5)
65public void RegisterInterceptor_ConfigBinder_Bind(MethodsToGen overload, ComplexTypeSpec type, IInvocationOperation invocation) 136private readonly Dictionary<ComplexTypeSpec, TypedInterceptorInvocationInfo.Builder> _invocationInfoBuilderCache = new(); 138public void RegisterInterceptor(MethodsToGen overload, ComplexTypeSpec type, IInvocationOperation invocation) 154public sealed record TypedInterceptorInvocationInfo(ComplexTypeSpec TargetType, ImmutableEquatableArray<InvocationLocationInfo> Locations) 156public sealed class Builder(MethodsToGen Overload, ComplexTypeSpec TargetType)
Specs\TypeIndex.cs (3)
19ComplexTypeSpec complexTypeSpec => CanInstantiate(complexTypeSpec) || HasBindableMembers(complexTypeSpec), 23public bool CanInstantiate(ComplexTypeSpec typeSpec) => typeSpec switch 31public bool HasBindableMembers(ComplexTypeSpec typeSpec) =>