ShaderTools.Hlsl.Binding.Binder.BindQualifiedType C# (CSharp) Method

BindQualifiedType() private method

private BindQualifiedType ( QualifiedNameSyntax qualifiedName ) : BoundType
qualifiedName QualifiedNameSyntax
return ShaderTools.Hlsl.Binding.BoundNodes.BoundType
        private BoundType BindQualifiedType(QualifiedNameSyntax qualifiedName)
        {
            var container = LookupContainer(qualifiedName.Left);

            if (container == null)
                return new BoundUnknownType();

            var symbols = container.Members.OfType<TypeSymbol>()
                .Where(x => x.Name == qualifiedName.Right.Name.Text)
                .ToImmutableArray();

            if (symbols.Length == 0)
            {
                Diagnostics.ReportUndeclaredType(qualifiedName);
                return new BoundUnknownType();
            }

            if (symbols.Length > 1)
                Diagnostics.ReportAmbiguousType(qualifiedName.Right.Name, symbols);

            Bind(qualifiedName.Right, x => new BoundName(symbols.First()));

            return new BoundName(symbols.First());
        }