public RootSingleNamespaceDeclaration( bool hasGlobalUsings, bool hasUsings, bool hasExternAliases, SyntaxReference treeNode, ImmutableArray <SingleNamespaceOrTypeDeclaration> children, ImmutableArray <ReferenceDirective> referenceDirectives, bool hasAssemblyAttributes, ImmutableArray <Diagnostic> diagnostics, QuickAttributes globalAliasedQuickAttributes) : base(string.Empty, treeNode, nameLocation: new SourceLocation(treeNode), children: children, diagnostics: diagnostics) { Debug.Assert(!referenceDirectives.IsDefault); _referenceDirectives = referenceDirectives; _hasAssemblyAttributes = hasAssemblyAttributes; _hasGlobalUsings = hasGlobalUsings; _hasUsings = hasUsings; _hasExternAliases = hasExternAliases; GlobalAliasedQuickAttributes = globalAliasedQuickAttributes; }
private void AddName(string name, QuickAttributes newAttributes) { #if DEBUG Debug.Assert(!_sealed); #endif var currentValue = QuickAttributes.None; _nameToAttributeMap.TryGetValue(name, out currentValue); QuickAttributes newValue = newAttributes | currentValue; _nameToAttributeMap[name] = newValue; }
public override SingleNamespaceOrTypeDeclaration VisitCompilationUnit(CompilationUnitSyntax compilationUnit) { if (_syntaxTree.Options.Kind != SourceCodeKind.Regular) { return(CreateScriptRootDeclaration(compilationUnit)); } _nonGlobalAliasedQuickAttributes = GetNonGlobalAliasedQuickAttributes(compilationUnit); var children = VisitNamespaceChildren(compilationUnit, compilationUnit.Members, ((Syntax.InternalSyntax.CompilationUnitSyntax)(compilationUnit.Green)).Members); return(CreateRootSingleNamespaceDeclaration(compilationUnit, children, isForScript: false)); }
public bool IsPossibleMatch(AttributeSyntax attr, QuickAttributes pattern) { #if DEBUG Debug.Assert(_sealed); #endif string name = attr.Name.GetUnqualifiedName().Identifier.ValueText; QuickAttributes foundAttributes; // We allow "Name" to bind to "NameAttribute" if (_nameToAttributeMap.TryGetValue(name, out foundAttributes) || _nameToAttributeMap.TryGetValue(name + "Attribute", out foundAttributes)) { return((foundAttributes & pattern) != 0); } return(false); }
internal SingleTypeDeclaration( DeclarationKind kind, string name, int arity, DeclarationModifiers modifiers, TypeDeclarationFlags declFlags, SyntaxReference syntaxReference, SourceLocation nameLocation, ImmutableSegmentedDictionary <string, VoidResult> memberNames, ImmutableArray <SingleTypeDeclaration> children, ImmutableArray <Diagnostic> diagnostics, QuickAttributes quickAttributes) : base(name, syntaxReference, nameLocation, diagnostics) { Debug.Assert(kind != DeclarationKind.Namespace); _kind = kind; _arity = (ushort)arity; _modifiers = modifiers; MemberNames = memberNames; _children = children; _flags = declFlags; QuickAttributes = quickAttributes; }