File: Binding\BinderFactory.NodeUsage.vb
Web Access
Project: src\src\Compilers\VisualBasic\Portable\Microsoft.CodeAnalysis.VisualBasic.vbproj (Microsoft.CodeAnalysis.VisualBasic)
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
 
Imports System.Collections.Concurrent
Imports System.Collections.Generic
Imports System.Threading
Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
 
Namespace Microsoft.CodeAnalysis.VisualBasic
    Partial Friend Class BinderFactory
        Private Enum NodeUsage As Byte
            ' For the compilation unit 
            CompilationUnit
 
            ' For implicit class (top-level or within a namespace)
            ImplicitClass
 
            ' For top-level script code of a compilation unit
            ScriptCompilationUnit
 
            ' All executable statements in top-level script code share the same TopLevelCodeBinder.
            ' We use CompilationUnitSyntax as a key to the cache for all such statements.
            TopLevelExecutableStatement
 
            ' For an Imports statement
            ImportsStatement
 
            ' No special binder for the full namespace block. For interior of namespace block
            ' (namespace members are in scope)
            NamespaceBlockInterior
 
            ' For the full type block (type parameters and members in scope). In VB, no special
            ' binder needed for the interior of a type block; members are in scope even in the
            ' header)
            TypeBlockFull
 
            ' For the full enum block (members in scope)
            EnumBlockFull
 
            ' For delegate declaration
            DelegateDeclaration
 
            ' For an inherits statement in a type
            InheritsStatement
 
            ' For an implements statement in a type
            ImplementsStatement
 
            ' For the full part of a method (type parameters in scope, but not parameter or locals)
            MethodFull
 
            ' For the interior of a method (parameters and locals in scope also)
            MethodInterior
 
            ' For field or property initializer
            FieldOrPropertyInitializer
 
            ' For array bounds of a field
            FieldArrayBounds
 
            ' For binding an attribute
            Attribute
 
            ' For binding parameter default values
            ParameterDefaultValue
 
            ' For the full part of the property, similar to MethodFull
            PropertyFull
 
            ' Add more usages here if necessary. 
        End Enum
    End Class
End Namespace