예제 #1
0
        public static Symbol ResolveNamespaceQualifiedFunction(FunctionFlags allowedFlags, Symbol?foundSymbol, IdentifierSyntax identifierSyntax, NamespaceSymbol namespaceSymbol)
        => ResolveSymbolInternal(
            allowedFlags,
            foundSymbol,
            identifierSyntax,
            getNameSuggestions: () =>
        {
            var knowFunctionNames = namespaceSymbol.Type.MethodResolver.GetKnownFunctions().Keys;

            return(allowedFlags.HasAnyDecoratorFlag()
                        ? knowFunctionNames.Concat(namespaceSymbol.Type.DecoratorResolver.GetKnownDecoratorFunctions().Keys)
                        : knowFunctionNames);
        },
            getMissingNameError: (builder, suggestedName) => suggestedName switch {
            null => builder.FunctionDoesNotExistInNamespace(namespaceSymbol, identifierSyntax.IdentifierName),
예제 #2
0
        private static ImmutableDictionary <string, NamespaceSymbol> GetBuiltInNamespaces(ResourceScope targetScope)
        {
            var namespaces = new NamespaceSymbol[] { new SystemNamespaceSymbol(), new AzNamespaceSymbol(targetScope) };

            return(namespaces.ToImmutableDictionary(property => property.Name, property => property, LanguageConstants.IdentifierComparer));
        }
예제 #3
0
 public virtual void VisitNamespaceSymbol(NamespaceSymbol symbol)
 {
     VisitDescendants(symbol);
 }
예제 #4
0
 public static Symbol ResolveNamespaceQualifiedFunction(FunctionFlags allowedFlags, Symbol?foundSymbol, IdentifierSyntax identifierSyntax, NamespaceSymbol namespaceSymbol)
 => ResolveSymbolInternal(
     allowedFlags,
     foundSymbol,
     identifierSyntax,
     getNameSuggestions: () => namespaceSymbol.Type.MethodResolver.GetKnownFunctions().Keys,
     getMissingNameError: (builder, suggestedName) => suggestedName switch {
     null => builder.FunctionDoesNotExistInNamespace(namespaceSymbol, identifierSyntax.IdentifierName),
예제 #5
0
 public override void VisitNamespaceSymbol(NamespaceSymbol symbol)
 {
     base.VisitNamespaceSymbol(symbol);
     this.CollectDiagnostics(symbol);
 }