| File: Symbols\SynthesizedSymbols\SynthesizedLocal.vb | Web Access |
| Project: src\roslyn\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.Immutable Imports System.Text Imports Microsoft.CodeAnalysis.CodeGen Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols <DebuggerDisplay("{GetDebuggerDisplay(), nq}")> Friend Class SynthesizedLocal Inherits LocalSymbol Private ReadOnly _kind As SynthesizedLocalKind Private ReadOnly _isByRef As Boolean Private ReadOnly _syntaxOpt As SyntaxNode Friend Sub New(container As Symbol, type As TypeSymbol, kind As SynthesizedLocalKind, Optional syntaxOpt As SyntaxNode = Nothing, Optional isByRef As Boolean = False) MyBase.New(container, type) Debug.Assert(Not kind.IsLongLived OrElse syntaxOpt IsNot Nothing) Me._kind = kind Me._syntaxOpt = syntaxOpt Me._isByRef = isByRef End Sub Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location) Get Return If(_syntaxOpt Is Nothing, ImmutableArray(Of Location).Empty, ImmutableArray.Create(_syntaxOpt.GetLocation())) End Get End Property Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference) Get Return If(_syntaxOpt Is Nothing, ImmutableArray(Of SyntaxReference).Empty, ImmutableArray.Create(_syntaxOpt.GetReference())) End Get End Property Friend Overrides Function GetDeclaratorSyntax() As SyntaxNode Debug.Assert(_syntaxOpt IsNot Nothing) Return _syntaxOpt End Function Friend NotOverridable Overrides ReadOnly Property IdentifierToken As SyntaxToken Get Return Nothing End Get End Property Friend NotOverridable Overrides ReadOnly Property IdentifierLocation As Location Get Return NoLocation.Singleton End Get End Property Public Overrides ReadOnly Property Name As String Get Return Nothing End Get End Property Friend Overrides ReadOnly Property IsByRef As Boolean Get Return _isByRef End Get End Property Friend Overrides ReadOnly Property SynthesizedKind As SynthesizedLocalKind Get Return _kind End Get End Property Friend Overrides ReadOnly Property DeclarationKind As LocalDeclarationKind Get Return LocalDeclarationKind.None End Get End Property Public Overrides ReadOnly Property IsFunctionValue As Boolean Get Return _kind = SynthesizedLocalKind.FunctionReturnValue End Get End Property Private Function GetDebuggerDisplay() As String Dim builder As New StringBuilder() builder.Append(_kind.ToString()) builder.Append(" ") builder.Append(Me.Type.ToDisplayString(SymbolDisplayFormat.TestFormat)) Return builder.ToString() End Function End Class End Namespace