提交 5963a66f 编写于 作者: V VSadov

CR feedback on vb tuples binding

上级 99776adc
......@@ -1159,7 +1159,7 @@
<!--
It is possible for a tuple to not have a type in a literal form
Ex:
(a: 1, b: (c: 1, d: null)) does not have a natural type, because "null" does not have one
(a:=1, b:= (c:=1, d:=Nothing)) does not have a natural type, because "Nothing" does not have one
-->
<Field Name="Type" Type="TypeSymbol" Override="true" Null="allow"/>
<Field Name="ArgumentNamesOpt" Type="ImmutableArray&lt;string&gt;" Null="allow"/>
......
......@@ -327,7 +327,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Dim elementNames As ArrayBuilder(Of String) = Nothing
Dim countOfExplicitNames = 0
' prepare And check element names And types
' prepare and check element names and types
For i As Integer = 0 To numElements - 1
Dim argumentSyntax As SimpleArgumentSyntax = arguments(i)
Dim name As String = Nothing
......@@ -382,14 +382,14 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End Function
''' <summary>
''' Returns the type to be used as a field type generates errors in case the type is not
''' supported for tuple type fields.
''' Returns the type to be used as a field type.
''' Generates errors in case the type is not supported for tuple type fields.
''' </summary>
Private Function GetTupleFieldType(expression As BoundExpression, errorSyntax As VisualBasicSyntaxNode, diagnostics As DiagnosticBag, <Out> ByRef hasError As Boolean) As TypeSymbol
Private Shared Function GetTupleFieldType(expression As BoundExpression, errorSyntax As VisualBasicSyntaxNode, diagnostics As DiagnosticBag, <Out> ByRef hasError As Boolean) As TypeSymbol
Dim expressionType As TypeSymbol = expression.Type
If Not expression.HasErrors Then
If expression.Type IsNot Nothing Then
If expressionType IsNot Nothing Then
If expressionType.SpecialType = SpecialType.System_Void Then
expressionType = ErrorTypeSymbol.UnknownResultType
hasError = True
......@@ -408,7 +408,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Private Shared Sub CollectTupleFieldMemberNames(name As String, position As Integer, tupleSize As Integer, ByRef elementNames As ArrayBuilder(Of String))
' add the name to the list
' names would typically all be there Or none at all
' names would typically all be there or none at all
' but in case we need to handle this in error cases
If elementNames IsNot Nothing Then
elementNames.Add(If(name, TupleTypeSymbol.TupleMemberName(position)))
......@@ -423,13 +423,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End If
End Sub
Private Shared Function CheckTupleMemberName(name As String, position As Integer, syntax As VisualBasicSyntaxNode, diagnostics As DiagnosticBag, uniqueFieldNames As PooledHashSet(Of String)) As Boolean
Private Shared Function CheckTupleMemberName(name As String, index As Integer, syntax As VisualBasicSyntaxNode, diagnostics As DiagnosticBag, uniqueFieldNames As PooledHashSet(Of String)) As Boolean
Dim reserved As Integer = TupleTypeSymbol.IsElementNameReserved(name)
If reserved = 0 Then
Binder.ReportDiagnostic(diagnostics, syntax, ERRID.ERR_TupleReservedMemberNameAnyPosition, name)
Return False
ElseIf reserved > 0 AndAlso reserved <> position + 1 Then
ElseIf reserved > 0 AndAlso reserved <> index + 1 Then
Binder.ReportDiagnostic(diagnostics, syntax, ERRID.ERR_TupleReservedMemberName, name, reserved)
Return False
......
......@@ -732,8 +732,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Dim locationsArray As ImmutableArray(Of Location) = locations.ToImmutableAndFree()
If typesArray.Length < 2 Then
'PROTOTYPE: tuples error ID
Dim diaginfo = diagnostics.Add(ERRID.ERR_TupleTooFewElements, syntax.GetLocation)
elementNames?.Free()
diagnostics.Add(ERRID.ERR_TupleTooFewElements, syntax.GetLocation)
Return ErrorTypeSymbol.UnknownResultType
End If
......
......@@ -2594,12 +2594,60 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End Function
Protected Overrides Function CommonCreateTupleTypeSymbol(elementTypes As ImmutableArray(Of ITypeSymbol), elementNames As ImmutableArray(Of String)) As INamedTypeSymbol
Dim vbElementTypes = elementTypes.SelectAsArray(Function(t) t.EnsureVbSymbolOrNothing(Of TypeSymbol)(NameOf(elementTypes)))
If elementTypes.IsDefault Then
Throw New ArgumentNullException(NameOf(elementTypes))
End If
If elementTypes.Length <= 1 Then
Throw New ArgumentException(CodeAnalysisResources.TuplesNeedAtLeastTwoElements, NameOf(elementNames))
End If
CheckTupleElementNames(elementTypes.Length, elementNames)
Dim typesBuilder = ArrayBuilder(Of TypeSymbol).GetInstance(elementTypes.Length)
For i As Integer = 0 To elementTypes.Length - 1
If elementTypes(i) Is Nothing Then
Throw New ArgumentNullException($"{NameOf(elementTypes)}[{i}]")
End If
Return TupleTypeSymbol.Create(locationOpt:=Nothing, elementTypes:=vbElementTypes, elementLocations:=Nothing, elementNames:=elementNames, compilation:=Me)
typesBuilder.Add(elementTypes(i).EnsureVbSymbolOrNothing(Of TypeSymbol)($"{NameOf(elementTypes)}[{i}]"))
Next
'no location for the type declaration
Return TupleTypeSymbol.Create(locationOpt:=Nothing, elementTypes:=typesBuilder.ToImmutableAndFree(), elementLocations:=Nothing, elementNames:=elementNames, compilation:=Me)
End Function
''' <summary>
''' Check that if any names are provided, their number matches the expected cardinality and they are not null.
''' </summary>
Private Shared Sub CheckTupleElementNames(cardinality As Integer, elementNames As ImmutableArray(Of String))
If Not elementNames.IsDefault Then
If elementNames.Length <> cardinality Then
Throw New ArgumentException(CodeAnalysisResources.TupleNamesAllOrNone, NameOf(elementNames))
End If
For i As Integer = 0 To elementNames.Length - 1
If elementNames(i) Is Nothing Then
Throw New ArgumentNullException($"{NameOf(elementNames)}[{i}]")
End If
Next
End If
End Sub
Protected Overrides Function CommonCreateTupleTypeSymbol(underlyingType As INamedTypeSymbol, elementNames As ImmutableArray(Of String)) As INamedTypeSymbol
If underlyingType Is Nothing Then
Throw New ArgumentNullException(NameOf(underlyingType))
End If
Dim csharpUnderlyingTuple = underlyingType.EnsureVbSymbolOrNothing(Of NamedTypeSymbol)(NameOf(underlyingType))
Dim cardinality As Integer
If Not csharpUnderlyingTuple.IsTupleCompatible(cardinality) Then
Throw New ArgumentException(CodeAnalysisResources.TupleUnderlyingTypeMustBeTupleCompatible, NameOf(underlyingType))
End If
CheckTupleElementNames(cardinality, elementNames)
Return TupleTypeSymbol.Create(
locationOpt:=Nothing,
tupleCompatibleType:=underlyingType.EnsureVbSymbolOrNothing(Of NamedTypeSymbol)(NameOf(underlyingType)),
......
......@@ -41,7 +41,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
_diagnostics.Add(result, useSiteDiagnostics)
result = New BoundDirectCast(node.Syntax, result, conv, node.Type, Nothing)
Else
Debug.Assert(node.Type = result.Type)
Debug.Assert(node.Type.IsSameTypeIgnoringCustomModifiers(result.Type))
End If
End If
......
......@@ -84,12 +84,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End If
'currentCreation = currentCreation.Update(
' currentCreation.ConstructorOpt,
' methodGroupOpt:=Nothing,
' arguments:=currentCreation.Arguments,
' initializerOpt:=currentCreation.InitializerOpt,
' type:=type)
currentCreation = currentCreation.Update(
currentCreation.ConstructorOpt,
methodGroupOpt:=Nothing,
arguments:=currentCreation.Arguments,
initializerOpt:=currentCreation.InitializerOpt,
type:=type)
Return currentCreation
Finally
......
......@@ -304,7 +304,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
''' </summary>
''' <param name="tupleSymbol"></param>
''' <returns></returns>
Private Function CanUseTupleTypeName(tupleSymbol As INamedTypeSymbol) As Boolean
Private Shared Function CanUseTupleTypeName(tupleSymbol As INamedTypeSymbol) As Boolean
Dim currentUnderlying As INamedTypeSymbol = tupleSymbol.TupleUnderlyingType
While currentUnderlying.Arity = TupleTypeSymbol.RestPosition
......@@ -344,15 +344,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
AddPunctuation(SyntaxKind.OpenParenToken)
Dim first As Boolean = True
For i As Integer = 0 To elementTypes.Length - 1
If Not first Then
If i <> 0 Then
AddPunctuation(SyntaxKind.CommaToken)
AddSpace()
End If
first = False
If hasNames Then
builder.Add(CreatePart(SymbolDisplayPartKind.FieldName, symbol, elementNames(i), noEscaping:=False))
AddSpace()
......@@ -361,7 +358,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End If
elementTypes(i).Accept(Me.NotFirstVisitor)
Next
AddPunctuation(SyntaxKind.CloseParenToken)
......@@ -391,7 +387,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
If isFirstSymbolVisited AndAlso format.KindOptions.IncludesOption(SymbolDisplayKindOptions.IncludeTypeKeyword) Then
If symbol.IsAnonymousType Then
' NOTE: Not actually a keyword, but it's not worth introducing a new kind just for this.
builder.Add(New SymbolDisplayPart(SymbolDisplayPartKind.Keyword, Nothing, "AnonymousType"))
builder.Add(New SymbolDisplayPart(SymbolDisplayPartKind.AnonymousTypeIndicator, Nothing, "AnonymousType"))
AddSpace()
ElseIf symbol.IsTupleType Then
builder.Add(New SymbolDisplayPart(SymbolDisplayPartKind.AnonymousTypeIndicator, Nothing, "Tuple"))
......
......@@ -337,8 +337,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' <summary>
''' If this is a field of a tuple type, return corresponding underlying field from the
''' tuple underlying type. Otherwise, null. In case of a malformed underlying type
''' the corresponding underlying field might be missing, return null in this case too.
''' tuple underlying type. Otherwise, Nothing. In case of a malformed underlying type
''' the corresponding underlying field might be missing, return Nothing in this case too.
''' </summary>
Public Overridable ReadOnly Property TupleUnderlyingField() As FieldSymbol
Get
......
......@@ -1207,13 +1207,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public ReadOnly Property INamedTypeSymbol_TupleElementNames As ImmutableArray(Of String) Implements INamedTypeSymbol.TupleElementNames
Private ReadOnly Property INamedTypeSymbol_TupleElementNames As ImmutableArray(Of String) Implements INamedTypeSymbol.TupleElementNames
Get
Return TupleElementNames
End Get
End Property
Public ReadOnly Property INamedTypeSymbol_TupleUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.TupleUnderlyingType
Private ReadOnly Property INamedTypeSymbol_TupleUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.TupleUnderlyingType
Get
Return TupleUnderlyingType
End Get
......
......@@ -417,7 +417,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
''' <summary>
''' If this is a property of a tuple type, return corresponding underlying property from the
''' tuple underlying type. Otherwise, Nothing.
......
......@@ -11,7 +11,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' that doesn't have a corresponding backing field within the tuple underlying type.
''' Created in response to an error condition.
''' </summary>
Friend Class TupleErrorFieldSymbol
Friend NotInheritable Class TupleErrorFieldSymbol
Inherits SynthesizedFieldSymbol
''' <summary>
......@@ -19,13 +19,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' id is an index of the element (zero-based).
''' Otherwise, (-1 - [index in members array]);
''' </summary>
Private _tupleFieldId As Integer
Private ReadOnly _tupleFieldId As Integer
Private _locations As ImmutableArray(Of Location)
Private ReadOnly _locations As ImmutableArray(Of Location)
Private _useSiteDiagnosticInfo As DiagnosticInfo
Private ReadOnly _useSiteDiagnosticInfo As DiagnosticInfo
Public Overrides ReadOnly Property IsTupleField() As Boolean
Public Overrides ReadOnly Property IsTupleField As Boolean
Get
Return True
End Get
......@@ -36,31 +36,31 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' id is an index of the element (zero-based).
''' Otherwise, (-1 - [index in members array]);
''' </summary>
Public ReadOnly Property TupleFieldId() As Integer
Public ReadOnly Property TupleFieldId As Integer
Get
Return Me._tupleFieldId
End Get
End Property
Public Overrides ReadOnly Property TupleUnderlyingField() As FieldSymbol
Public Overrides ReadOnly Property TupleUnderlyingField As FieldSymbol
Get
Return Nothing
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Symbol.GetDeclaringSyntaxReferenceHelper(Of VisualBasicSyntaxNode)(Me._locations)
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return False
End Get
......@@ -69,7 +69,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Public Sub New(container As NamedTypeSymbol, name As String, tupleFieldId As Integer, location As Location, type As TypeSymbol, useSiteDiagnosticInfo As DiagnosticInfo)
MyBase.New(container, container, type, name)
Debug.Assert(name <> Nothing)
Me._locations = (If((location Is Nothing), ImmutableArray(Of Location).Empty, ImmutableArray.Create(Of Location)(location)))
Me._locations = If((location Is Nothing), ImmutableArray(Of Location).Empty, ImmutableArray.Create(Of Location)(location))
Me._useSiteDiagnosticInfo = useSiteDiagnosticInfo
Me._tupleFieldId = tupleFieldId
End Sub
......@@ -93,8 +93,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overloads Function Equals(other As TupleErrorFieldSymbol) As Boolean
Dim flag As Boolean = other Is Me
Return flag OrElse (other IsNot Nothing AndAlso Me._tupleFieldId = other._tupleFieldId AndAlso Me.ContainingType Is other.ContainingType)
Return other Is Me OrElse
(other IsNot Nothing AndAlso Me._tupleFieldId = other._tupleFieldId AndAlso Me.ContainingType = other.ContainingType)
End Function
End Class
End Namespace
......@@ -10,48 +10,48 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' Represents an event of a tuple type (such as (int, byte).SomeEvent)
''' that is backed by an event within the tuple underlying type.
''' </summary>
Friend Class TupleEventSymbol
Friend NotInheritable Class TupleEventSymbol
Inherits WrappedEventSymbol
Private _containingType As TupleTypeSymbol
Private ReadOnly _containingType As TupleTypeSymbol
Public Overrides ReadOnly Property IsTupleEvent() As Boolean
Public Overrides ReadOnly Property IsTupleEvent As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property TupleUnderlyingEvent() As EventSymbol
Public Overrides ReadOnly Property TupleUnderlyingEvent As EventSymbol
Get
Return Me._underlyingEvent
End Get
End Property
Public Overrides ReadOnly Property ContainingSymbol() As Symbol
Public Overrides ReadOnly Property ContainingSymbol As Symbol
Get
Return Me._containingType
End Get
End Property
Public Overrides ReadOnly Property Type() As TypeSymbol
Public Overrides ReadOnly Property Type As TypeSymbol
Get
Return Me._underlyingEvent.Type
End Get
End Property
Public Overrides ReadOnly Property AddMethod() As MethodSymbol
Public Overrides ReadOnly Property AddMethod As MethodSymbol
Get
Return Me._containingType.GetTupleMemberSymbolForUnderlyingMember(Of MethodSymbol)(Me._underlyingEvent.AddMethod)
End Get
End Property
Public Overrides ReadOnly Property RemoveMethod() As MethodSymbol
Public Overrides ReadOnly Property RemoveMethod As MethodSymbol
Get
Return Me._containingType.GetTupleMemberSymbolForUnderlyingMember(Of MethodSymbol)(Me._underlyingEvent.RemoveMethod)
End Get
End Property
Friend Overrides ReadOnly Property AssociatedField() As FieldSymbol
Friend Overrides ReadOnly Property AssociatedField As FieldSymbol
Get
Return Me._containingType.GetTupleMemberSymbolForUnderlyingMember(Of FieldSymbol)(Me._underlyingEvent.AssociatedField)
End Get
......@@ -63,13 +63,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Friend Overrides ReadOnly Property IsExplicitInterfaceImplementation() As Boolean
Friend Overrides ReadOnly Property IsExplicitInterfaceImplementation As Boolean
Get
Return Me._underlyingEvent.IsExplicitInterfaceImplementation
End Get
End Property
Public Overrides ReadOnly Property ExplicitInterfaceImplementations() As ImmutableArray(Of EventSymbol)
Public Overrides ReadOnly Property ExplicitInterfaceImplementations As ImmutableArray(Of EventSymbol)
Get
Return Me._underlyingEvent.ExplicitInterfaceImplementations
End Get
......@@ -95,8 +95,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overloads Function Equals(other As TupleEventSymbol) As Boolean
Dim flag As Boolean = other Is Me
Return flag OrElse (other IsNot Nothing AndAlso Me._containingType Is other._containingType AndAlso Me._underlyingEvent Is other._underlyingEvent)
Return other Is Me OrElse
(other IsNot Nothing AndAlso Me._containingType = other._containingType AndAlso Me._underlyingEvent = other._underlyingEvent)
End Function
Public Overrides Function GetAttributes() As ImmutableArray(Of VisualBasicAttributeData)
......
......@@ -17,37 +17,37 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Private _tupleFieldId As Integer
Public Overrides ReadOnly Property IsTupleField() As Boolean
Public Overrides ReadOnly Property IsTupleField As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property TupleUnderlyingField() As FieldSymbol
Public Overrides ReadOnly Property TupleUnderlyingField As FieldSymbol
Get
Return Me._underlyingField
End Get
End Property
Public ReadOnly Property TupleFieldId() As Integer
Public ReadOnly Property TupleFieldId As Integer
Get
Return Me._tupleFieldId
End Get
End Property
Public Overrides ReadOnly Property AssociatedSymbol() As Symbol
Public Overrides ReadOnly Property AssociatedSymbol As Symbol
Get
Return Me._containingTuple.GetTupleMemberSymbolForUnderlyingMember(Of Symbol)(Me._underlyingField.AssociatedSymbol)
End Get
End Property
Public Overrides ReadOnly Property ContainingSymbol() As Symbol
Public Overrides ReadOnly Property ContainingSymbol As Symbol
Get
Return Me._containingTuple
End Get
End Property
Public Overrides ReadOnly Property CustomModifiers() As ImmutableArray(Of CustomModifier)
Public Overrides ReadOnly Property CustomModifiers As ImmutableArray(Of CustomModifier)
Get
Return Me._underlyingField.CustomModifiers
End Get
......@@ -84,8 +84,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overloads Function Equals(other As TupleFieldSymbol) As Boolean
Dim flag As Boolean = other Is Me
Return flag OrElse (other IsNot Nothing AndAlso Me._tupleFieldId = other._tupleFieldId AndAlso Me._containingTuple Is other._containingTuple)
Return other Is Me OrElse
(other IsNot Nothing AndAlso Me._tupleFieldId = other._tupleFieldId AndAlso Me._containingTuple = other._containingTuple)
End Function
End Class
......@@ -98,25 +98,25 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Private _locations As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Symbol.GetDeclaringSyntaxReferenceHelper(Of VisualBasicSyntaxNode)(Me._locations)
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return False
End Get
End Property
Friend Overrides ReadOnly Property TypeLayoutOffset() As Integer?
Friend Overrides ReadOnly Property TypeLayoutOffset As Integer?
Get
Dim flag As Boolean = Me._underlyingField.ContainingType IsNot Me._containingTuple.TupleUnderlyingType
Dim result As Integer?
......@@ -129,7 +129,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public Overrides ReadOnly Property AssociatedSymbol() As Symbol
Public Overrides ReadOnly Property AssociatedSymbol As Symbol
Get
Dim flag As Boolean = Me._underlyingField.ContainingType IsNot Me._containingTuple.TupleUnderlyingType
Dim result As Symbol
......@@ -144,7 +144,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Public Sub New(container As TupleTypeSymbol, underlyingField As FieldSymbol, tupleFieldId As Integer, location As Location)
MyBase.New(container, underlyingField, tupleFieldId)
Me._locations = (If((location Is Nothing), ImmutableArray(Of Location).Empty, ImmutableArray.Create(Of Location)(location)))
Me._locations = If((location Is Nothing), ImmutableArray(Of Location).Empty, ImmutableArray.Create(Of Location)(location))
End Sub
End Class
......@@ -152,24 +152,24 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' Represents an element field of a tuple type (such as (int a, byte b).a, or (int a, byte b).b)
''' that is backed by a real field with a different name within the tuple underlying type.
''' </summary>
Friend Class TupleRenamedElementFieldSymbol
Friend NotInheritable Class TupleRenamedElementFieldSymbol
Inherits TupleElementFieldSymbol
Private _name As String
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._name
End Get
End Property
Friend Overrides ReadOnly Property TypeLayoutOffset() As Integer?
Friend Overrides ReadOnly Property TypeLayoutOffset As Integer?
Get
Return Nothing
End Get
End Property
Public Overrides ReadOnly Property AssociatedSymbol() As Symbol
Public Overrides ReadOnly Property AssociatedSymbol As Symbol
Get
Return Nothing
End Get
......
......@@ -10,88 +10,87 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' Represents a method of a tuple type (such as (int, byte).ToString())
''' that is backed by a method within the tuple underlying type.
''' </summary>
Friend Class TupleMethodSymbol
Friend NotInheritable Class TupleMethodSymbol
Inherits WrappedMethodSymbol
Private _containingType As TupleTypeSymbol
Private ReadOnly _containingType As TupleTypeSymbol
Private _underlyingMethod As MethodSymbol
Private ReadOnly _underlyingMethod As MethodSymbol
Private _typeParameters As ImmutableArray(Of TypeParameterSymbol)
Private ReadOnly _typeParameters As ImmutableArray(Of TypeParameterSymbol)
Private _lazyParameters As ImmutableArray(Of ParameterSymbol)
Private ReadOnly _lazyParameters As ImmutableArray(Of ParameterSymbol)
Public Overrides ReadOnly Property IsTupleMethod() As Boolean
Public Overrides ReadOnly Property IsTupleMethod As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property TupleUnderlyingMethod() As MethodSymbol
Public Overrides ReadOnly Property TupleUnderlyingMethod As MethodSymbol
Get
Return Me._underlyingMethod.ConstructedFrom
End Get
End Property
Public Overrides ReadOnly Property UnderlyingMethod() As MethodSymbol
Public Overrides ReadOnly Property UnderlyingMethod As MethodSymbol
Get
Return Me._underlyingMethod
End Get
End Property
Public Overrides ReadOnly Property AssociatedSymbol() As Symbol
Public Overrides ReadOnly Property AssociatedSymbol As Symbol
Get
Return Me._containingType.GetTupleMemberSymbolForUnderlyingMember(Of Symbol)(Me._underlyingMethod.ConstructedFrom.AssociatedSymbol)
End Get
End Property
Public Overrides ReadOnly Property ContainingSymbol() As Symbol
Public Overrides ReadOnly Property ContainingSymbol As Symbol
Get
Return Me._containingType
End Get
End Property
Public Overrides ReadOnly Property ExplicitInterfaceImplementations() As ImmutableArray(Of MethodSymbol)
Public Overrides ReadOnly Property ExplicitInterfaceImplementations As ImmutableArray(Of MethodSymbol)
Get
Return Me._underlyingMethod.ConstructedFrom.ExplicitInterfaceImplementations
End Get
End Property
Public Overrides ReadOnly Property Parameters() As ImmutableArray(Of ParameterSymbol)
Public Overrides ReadOnly Property Parameters As ImmutableArray(Of ParameterSymbol)
Get
Dim isDefault As Boolean = Me._lazyParameters.IsDefault
If isDefault Then
If Me._lazyParameters.IsDefault Then
InterlockedOperations.Initialize(Of ParameterSymbol)(Me._lazyParameters, Me.CreateParameters())
End If
Return Me._lazyParameters
End Get
End Property
Public Overrides ReadOnly Property IsSub() As Boolean
Public Overrides ReadOnly Property IsSub As Boolean
Get
Return Me._underlyingMethod.IsSub
End Get
End Property
Public Overrides ReadOnly Property ReturnType() As TypeSymbol
Public Overrides ReadOnly Property ReturnType As TypeSymbol
Get
Return Me._underlyingMethod.ReturnType
End Get
End Property
Public Overrides ReadOnly Property ReturnTypeCustomModifiers() As ImmutableArray(Of CustomModifier)
Public Overrides ReadOnly Property ReturnTypeCustomModifiers As ImmutableArray(Of CustomModifier)
Get
Return Me._underlyingMethod.ReturnTypeCustomModifiers
End Get
End Property
Public Overrides ReadOnly Property TypeArguments() As ImmutableArray(Of TypeSymbol)
Public Overrides ReadOnly Property TypeArguments As ImmutableArray(Of TypeSymbol)
Get
Return StaticCast(Of TypeSymbol).From(Me._typeParameters)
End Get
End Property
Public Overrides ReadOnly Property TypeParameters() As ImmutableArray(Of TypeParameterSymbol)
Public Overrides ReadOnly Property TypeParameters As ImmutableArray(Of TypeParameterSymbol)
Get
Return Me._typeParameters
End Get
......@@ -137,8 +136,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overloads Function Equals(other As TupleMethodSymbol) As Boolean
Dim flag As Boolean = other Is Me
Return flag OrElse (other IsNot Nothing AndAlso Me._containingType Is other._containingType AndAlso Me._underlyingMethod.ConstructedFrom Is other._underlyingMethod.ConstructedFrom)
Return other Is Me OrElse
(other IsNot Nothing AndAlso Me._containingType = other._containingType AndAlso Me._underlyingMethod.ConstructedFrom = other._underlyingMethod.ConstructedFrom)
End Function
End Class
End Namespace
......@@ -8,12 +8,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' <summary>
''' Represents a parameter of a method or a property of a tuple type
''' </summary>
Friend Class TupleParameterSymbol
Friend NotInheritable Class TupleParameterSymbol
Inherits WrappedParameterSymbol
Private _container As Symbol
Public Overrides ReadOnly Property ContainingSymbol() As Symbol
Public Overrides ReadOnly Property ContainingSymbol As Symbol
Get
Return Me._container
End Get
......@@ -35,8 +35,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overloads Function Equals(other As TupleParameterSymbol) As Boolean
Dim flag As Boolean = other Is Me
Return flag OrElse (other IsNot Nothing AndAlso Me._container Is other._container AndAlso Me._underlyingParameter Is other._underlyingParameter)
Return other Is Me OrElse
(other IsNot Nothing AndAlso Me._container = other._container AndAlso Me._underlyingParameter = other._underlyingParameter)
End Function
End Class
End Namespace
......@@ -17,31 +17,31 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Private _lazyParameters As ImmutableArray(Of ParameterSymbol)
Public Overrides ReadOnly Property IsTupleProperty() As Boolean
Public Overrides ReadOnly Property IsTupleProperty As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property TupleUnderlyingProperty() As PropertySymbol
Public Overrides ReadOnly Property TupleUnderlyingProperty As PropertySymbol
Get
Return Me._underlyingProperty
End Get
End Property
Public Overrides ReadOnly Property Type() As TypeSymbol
Public Overrides ReadOnly Property Type As TypeSymbol
Get
Return Me._underlyingProperty.Type
End Get
End Property
Public Overrides ReadOnly Property TypeCustomModifiers() As ImmutableArray(Of CustomModifier)
Public Overrides ReadOnly Property TypeCustomModifiers As ImmutableArray(Of CustomModifier)
Get
Return Me._underlyingProperty.TypeCustomModifiers
End Get
End Property
Public Overrides ReadOnly Property Parameters() As ImmutableArray(Of ParameterSymbol)
Public Overrides ReadOnly Property Parameters As ImmutableArray(Of ParameterSymbol)
Get
Dim isDefault As Boolean = Me._lazyParameters.IsDefault
If isDefault Then
......@@ -51,13 +51,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public Overrides ReadOnly Property GetMethod() As MethodSymbol
Public Overrides ReadOnly Property GetMethod As MethodSymbol
Get
Return Me._containingType.GetTupleMemberSymbolForUnderlyingMember(Of MethodSymbol)(Me._underlyingProperty.GetMethod)
End Get
End Property
Public Overrides ReadOnly Property SetMethod() As MethodSymbol
Public Overrides ReadOnly Property SetMethod As MethodSymbol
Get
Return Me._containingType.GetTupleMemberSymbolForUnderlyingMember(Of MethodSymbol)(Me._underlyingProperty.SetMethod)
End Get
......@@ -69,13 +69,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public Overrides ReadOnly Property ExplicitInterfaceImplementations() As ImmutableArray(Of PropertySymbol)
Public Overrides ReadOnly Property ExplicitInterfaceImplementations As ImmutableArray(Of PropertySymbol)
Get
Return Me._underlyingProperty.ExplicitInterfaceImplementations
End Get
End Property
Public Overrides ReadOnly Property ContainingSymbol() As Symbol
Public Overrides ReadOnly Property ContainingSymbol As Symbol
Get
Return Me._containingType
End Get
......@@ -117,8 +117,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overloads Function Equals(other As TuplePropertySymbol) As Boolean
Dim flag As Boolean = other Is Me
Return flag OrElse (other IsNot Nothing AndAlso Me._containingType Is other._containingType AndAlso Me._underlyingProperty Is other._underlyingProperty)
Return other Is Me OrElse
(other IsNot Nothing AndAlso Me._containingType = other._containingType AndAlso Me._underlyingProperty = other._underlyingProperty)
End Function
Public Overrides Function GetAttributes() As ImmutableArray(Of VisualBasicAttributeData)
......
......@@ -8,16 +8,16 @@ Imports Microsoft.CodeAnalysis.Collections
Imports Microsoft.CodeAnalysis.RuntimeMembers
Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Friend Class TupleTypeSymbol
Friend NotInheritable Class TupleTypeSymbol
Inherits WrappedNamedTypeSymbol
Private _locations As ImmutableArray(Of Location)
Private ReadOnly _locations As ImmutableArray(Of Location)
Private _elementLocations As ImmutableArray(Of Location)
Private ReadOnly _elementLocations As ImmutableArray(Of Location)
Private _elementNames As ImmutableArray(Of String)
Private ReadOnly _elementNames As ImmutableArray(Of String)
Private _elementTypes As ImmutableArray(Of TypeSymbol)
Private ReadOnly _elementTypes As ImmutableArray(Of TypeSymbol)
Private _lazyMembers As ImmutableArray(Of Symbol)
......@@ -29,11 +29,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Friend Const TupleTypeName As String = "ValueTuple"
Private Shared tupleTypes As WellKnownType() = New WellKnownType() {WellKnownType.System_ValueTuple_T1, WellKnownType.System_ValueTuple_T2, WellKnownType.System_ValueTuple_T3, WellKnownType.System_ValueTuple_T4, WellKnownType.System_ValueTuple_T5, WellKnownType.System_ValueTuple_T6, WellKnownType.System_ValueTuple_T7, WellKnownType.System_ValueTuple_TRest}
Private Shared ReadOnly tupleTypes As WellKnownType() = New WellKnownType() {WellKnownType.System_ValueTuple_T1, WellKnownType.System_ValueTuple_T2, WellKnownType.System_ValueTuple_T3, WellKnownType.System_ValueTuple_T4, WellKnownType.System_ValueTuple_T5, WellKnownType.System_ValueTuple_T6, WellKnownType.System_ValueTuple_T7, WellKnownType.System_ValueTuple_TRest}
Private Shared tupleCtors As WellKnownMember() = New WellKnownMember() {WellKnownMember.System_ValueTuple_T1__ctor, WellKnownMember.System_ValueTuple_T2__ctor, WellKnownMember.System_ValueTuple_T3__ctor, WellKnownMember.System_ValueTuple_T4__ctor, WellKnownMember.System_ValueTuple_T5__ctor, WellKnownMember.System_ValueTuple_T6__ctor, WellKnownMember.System_ValueTuple_T7__ctor, WellKnownMember.System_ValueTuple_TRest__ctor}
Private Shared ReadOnly tupleCtors As WellKnownMember() = New WellKnownMember() {WellKnownMember.System_ValueTuple_T1__ctor, WellKnownMember.System_ValueTuple_T2__ctor, WellKnownMember.System_ValueTuple_T3__ctor, WellKnownMember.System_ValueTuple_T4__ctor, WellKnownMember.System_ValueTuple_T5__ctor, WellKnownMember.System_ValueTuple_T6__ctor, WellKnownMember.System_ValueTuple_T7__ctor, WellKnownMember.System_ValueTuple_TRest__ctor}
Private Shared tupleMembers As WellKnownMember()() = New WellKnownMember()() {
Private Shared ReadOnly tupleMembers As WellKnownMember()() = New WellKnownMember()() {
New WellKnownMember() {WellKnownMember.System_ValueTuple_T1__Item1},
New WellKnownMember() {WellKnownMember.System_ValueTuple_T2__Item1, WellKnownMember.System_ValueTuple_T2__Item2},
New WellKnownMember() {WellKnownMember.System_ValueTuple_T3__Item1, WellKnownMember.System_ValueTuple_T3__Item2, WellKnownMember.System_ValueTuple_T3__Item3},
......@@ -43,49 +43,49 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
New WellKnownMember() {WellKnownMember.System_ValueTuple_T7__Item1, WellKnownMember.System_ValueTuple_T7__Item2, WellKnownMember.System_ValueTuple_T7__Item3, WellKnownMember.System_ValueTuple_T7__Item4, WellKnownMember.System_ValueTuple_T7__Item5, WellKnownMember.System_ValueTuple_T7__Item6, WellKnownMember.System_ValueTuple_T7__Item7},
New WellKnownMember() {WellKnownMember.System_ValueTuple_TRest__Item1, WellKnownMember.System_ValueTuple_TRest__Item2, WellKnownMember.System_ValueTuple_TRest__Item3, WellKnownMember.System_ValueTuple_TRest__Item4, WellKnownMember.System_ValueTuple_TRest__Item5, WellKnownMember.System_ValueTuple_TRest__Item6, WellKnownMember.System_ValueTuple_TRest__Item7, WellKnownMember.System_ValueTuple_TRest__Rest}}
Public Overrides ReadOnly Property IsTupleType() As Boolean
Public Overrides ReadOnly Property IsTupleType As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property TupleUnderlyingType() As NamedTypeSymbol
Public Overrides ReadOnly Property TupleUnderlyingType As NamedTypeSymbol
Get
Return Me._underlyingType
End Get
End Property
Public Overrides ReadOnly Property TupleElementTypes() As ImmutableArray(Of TypeSymbol)
Public Overrides ReadOnly Property TupleElementTypes As ImmutableArray(Of TypeSymbol)
Get
Return Me._elementTypes
End Get
End Property
Public Overrides ReadOnly Property TupleElementNames() As ImmutableArray(Of String)
Public Overrides ReadOnly Property TupleElementNames As ImmutableArray(Of String)
Get
Return Me._elementNames
End Get
End Property
Public Overrides ReadOnly Property IsReferenceType() As Boolean
Public Overrides ReadOnly Property IsReferenceType As Boolean
Get
Return Not Me._underlyingType.IsErrorType() AndAlso Me._underlyingType.IsReferenceType
End Get
End Property
Public Overrides ReadOnly Property IsValueType() As Boolean
Public Overrides ReadOnly Property IsValueType As Boolean
Get
Return Me._underlyingType.IsValueType
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return False
End Get
End Property
Public ReadOnly Property TupleElementFields() As ImmutableArray(Of FieldSymbol)
Public ReadOnly Property TupleElementFields As ImmutableArray(Of FieldSymbol)
Get
Dim isDefault As Boolean = Me._lazyFields.IsDefault
If isDefault Then
......@@ -95,7 +95,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Friend ReadOnly Property UnderlyingDefinitionToMemberMap() As SmallDictionary(Of Symbol, Symbol)
Friend ReadOnly Property UnderlyingDefinitionToMemberMap As SmallDictionary(Of Symbol, Symbol)
Get
If Me._lazyUnderlyingDefinitionToMemberMap Is Nothing Then
Me._lazyUnderlyingDefinitionToMemberMap = Me.ComputeDefinitionToMemberMap()
......@@ -104,43 +104,43 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public Overrides ReadOnly Property EnumUnderlyingType() As NamedTypeSymbol
Public Overrides ReadOnly Property EnumUnderlyingType As NamedTypeSymbol
Get
Return Me._underlyingType.EnumUnderlyingType
End Get
End Property
Public Overrides ReadOnly Property Kind() As SymbolKind
Public Overrides ReadOnly Property Kind As SymbolKind
Get
Return SymbolKind.NamedType
End Get
End Property
Public Overrides ReadOnly Property TypeKind() As TypeKind
Public Overrides ReadOnly Property TypeKind As TypeKind
Get
Return If((Me._underlyingType.TypeKind = TypeKind.[Class]), TypeKind.[Class], TypeKind.Struct)
Return If(Me._underlyingType.TypeKind = TypeKind.Class, TypeKind.Class, TypeKind.Struct)
End Get
End Property
Public Overrides ReadOnly Property ContainingSymbol() As Symbol
Public Overrides ReadOnly Property ContainingSymbol As Symbol
Get
Return Me._underlyingType.ContainingSymbol
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Symbol.GetDeclaringSyntaxReferenceHelper(Of VisualBasicSyntaxNode)(Me._locations)
End Get
End Property
Public Overrides ReadOnly Property DeclaredAccessibility() As Accessibility
Public Overrides ReadOnly Property DeclaredAccessibility As Accessibility
Get
Dim result As Accessibility
If Me._underlyingType.IsErrorType() Then
......@@ -152,73 +152,73 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public Overrides ReadOnly Property IsMustInherit() As Boolean
Public Overrides ReadOnly Property IsMustInherit As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property IsNotInheritable() As Boolean
Public Overrides ReadOnly Property IsNotInheritable As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property Arity() As Integer
Public Overrides ReadOnly Property Arity As Integer
Get
Return 0
End Get
End Property
Public Overrides ReadOnly Property TypeParameters() As ImmutableArray(Of TypeParameterSymbol)
Public Overrides ReadOnly Property TypeParameters As ImmutableArray(Of TypeParameterSymbol)
Get
Return ImmutableArray(Of TypeParameterSymbol).Empty
End Get
End Property
Friend Overrides ReadOnly Property TypeArgumentsCustomModifiers() As ImmutableArray(Of ImmutableArray(Of CustomModifier))
Friend Overrides ReadOnly Property TypeArgumentsCustomModifiers As ImmutableArray(Of ImmutableArray(Of CustomModifier))
Get
Return ImmutableArray(Of ImmutableArray(Of CustomModifier)).Empty
End Get
End Property
Friend Overrides ReadOnly Property HasTypeArgumentsCustomModifiers() As Boolean
Friend Overrides ReadOnly Property HasTypeArgumentsCustomModifiers As Boolean
Get
Return False
End Get
End Property
Friend Overrides ReadOnly Property TypeArgumentsNoUseSiteDiagnostics() As ImmutableArray(Of TypeSymbol)
Friend Overrides ReadOnly Property TypeArgumentsNoUseSiteDiagnostics As ImmutableArray(Of TypeSymbol)
Get
Return ImmutableArray(Of TypeSymbol).Empty
End Get
End Property
Public Overrides ReadOnly Property ConstructedFrom() As NamedTypeSymbol
Public Overrides ReadOnly Property ConstructedFrom As NamedTypeSymbol
Get
Return Me
End Get
End Property
Public Overrides ReadOnly Property MightContainExtensionMethods() As Boolean
Public Overrides ReadOnly Property MightContainExtensionMethods As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return String.Empty
End Get
End Property
Friend Overrides ReadOnly Property MangleName() As Boolean
Friend Overrides ReadOnly Property MangleName As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Iterator Property MemberNames() As IEnumerable(Of String)
Public Overrides ReadOnly Iterator Property MemberNames As IEnumerable(Of String)
Get
Dim [set] = PooledHashSet(Of String).GetInstance()
For Each member In GetMembers()
......@@ -232,55 +232,55 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Friend Overrides ReadOnly Property HasSpecialName() As Boolean
Friend Overrides ReadOnly Property HasSpecialName As Boolean
Get
Return False
End Get
End Property
Friend Overrides ReadOnly Property IsComImport() As Boolean
Friend Overrides ReadOnly Property IsComImport As Boolean
Get
Return False
End Get
End Property
Friend Overrides ReadOnly Property IsWindowsRuntimeImport() As Boolean
Friend Overrides ReadOnly Property IsWindowsRuntimeImport As Boolean
Get
Return False
End Get
End Property
Friend Overrides ReadOnly Property ShouldAddWinRTMembers() As Boolean
Friend Overrides ReadOnly Property ShouldAddWinRTMembers As Boolean
Get
Return False
End Get
End Property
Friend Overrides ReadOnly Property IsSerializable() As Boolean
Friend Overrides ReadOnly Property IsSerializable As Boolean
Get
Return Me._underlyingType.IsSerializable
End Get
End Property
Friend Overrides ReadOnly Property Layout() As TypeLayout
Friend Overrides ReadOnly Property Layout As TypeLayout
Get
Return Me._underlyingType.Layout
End Get
End Property
Friend Overrides ReadOnly Property MarshallingCharSet() As CharSet
Friend Overrides ReadOnly Property MarshallingCharSet As CharSet
Get
Return Me._underlyingType.MarshallingCharSet
End Get
End Property
Friend Overrides ReadOnly Property HasDeclarativeSecurity() As Boolean
Friend Overrides ReadOnly Property HasDeclarativeSecurity As Boolean
Get
Return Me._underlyingType.HasDeclarativeSecurity
End Get
End Property
Friend Overrides ReadOnly Property IsInterface() As Boolean
Friend Overrides ReadOnly Property IsInterface As Boolean
Get
Return False
End Get
......@@ -310,7 +310,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Private Sub New(locations As ImmutableArray(Of Location), underlyingType As NamedTypeSymbol, elementLocations As ImmutableArray(Of Location), elementNames As ImmutableArray(Of String), elementTypes As ImmutableArray(Of TypeSymbol))
MyBase.New(underlyingType)
Debug.Assert(elementLocations.IsDefault OrElse elementNames.IsDefault OrElse elementLocations.Length = elementNames.Length)
Debug.Assert(elementLocations.IsDefault OrElse elementLocations.Length = elementTypes.Length)
Debug.Assert(elementNames.IsDefault OrElse elementNames.Length = elementTypes.Length)
Debug.Assert(Not underlyingType.IsTupleType)
......@@ -400,24 +399,20 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
typeArgumentsBuilder.Clear()
For i As Integer = 0 To TupleTypeSymbol.RestPosition - 1 - 1
If Not modifiers.IsDefault AndAlso Not modifiers(i).IsDefaultOrEmpty Then
typeArgumentsBuilder.Add(New TypeWithModifiers(typeArgumentsNoUseSiteDiagnostics(i), modifiers(i)))
Else
typeArgumentsBuilder.Add(New TypeWithModifiers(typeArgumentsNoUseSiteDiagnostics(i)))
End If
typeArgumentsBuilder.Add(New TypeWithModifiers(typeArgumentsNoUseSiteDiagnostics(i), GetModifiers(modifiers, i)))
Next
If Not modifiers.IsDefault AndAlso Not modifiers(TupleTypeSymbol.RestPosition - 1).IsDefaultOrEmpty Then
typeArgumentsBuilder.Add(New TypeWithModifiers(extensionTuple, modifiers(TupleTypeSymbol.RestPosition - 1)))
Else
typeArgumentsBuilder.Add(New TypeWithModifiers(extensionTuple))
End If
typeArgumentsBuilder.Add(New TypeWithModifiers(extensionTuple, GetModifiers(modifiers, TupleTypeSymbol.RestPosition - 1)))
Dim definition = tupleCompatibleType.ConstructedFrom
Dim subst = TypeSubstitution.Create(definition, definition.TypeParameters, typeArgumentsBuilder.ToImmutable(), False)
Return definition.Construct(subst)
End Function
Private Shared Function GetModifiers(modifiers As ImmutableArray(Of ImmutableArray(Of CustomModifier)), i As Integer) As ImmutableArray(Of CustomModifier)
Return If(modifiers.IsDefaultOrEmpty, Nothing, modifiers(i))
End Function
Friend Function WithUnderlyingType(newUnderlyingType As NamedTypeSymbol) As TupleTypeSymbol
Debug.Assert(Not newUnderlyingType.IsTupleType AndAlso newUnderlyingType.IsTupleOrCompatibleWithTupleOfCardinality(Me._elementTypes.Length))
Return TupleTypeSymbol.Create(Me._locations, newUnderlyingType, Me._elementLocations, Me._elementNames)
......@@ -574,8 +569,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Return result
End Function
Friend Shared Function GetWellKnownMemberInType(type As NamedTypeSymbol, relativeMember As WellKnownMember) As Symbol
Debug.Assert(relativeMember >= WellKnownMember.System_Math__RoundDouble AndAlso relativeMember < WellKnownMember.Count)
Private Shared Function GetWellKnownMemberInType(type As NamedTypeSymbol, relativeMember As WellKnownMember) As Symbol
Debug.Assert(relativeMember >= WellKnownMember.System_ValueTuple_T1__Item1 AndAlso relativeMember <= WellKnownMember.System_ValueTuple_TRest__ctor)
Debug.Assert(type.IsDefinition)
Dim descriptor As MemberDescriptor = WellKnownMembers.GetDescriptor(relativeMember)
Return VisualBasicCompilation.GetRuntimeMember(type, descriptor, VisualBasicCompilation.SpecialMembersSignatureComparer.Instance, Nothing)
......@@ -678,12 +673,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End If
' Add a field with the given name
Dim Location = If(_elementLocations.IsDefault, Nothing, _elementLocations(tupleFieldIndex))
Dim location = If(_elementLocations.IsDefault, Nothing, _elementLocations(tupleFieldIndex))
If field.Name = namesOfVirtualFields(tupleFieldIndex) Then
members.Add(New TupleElementFieldSymbol(Me, FieldSymbol, tupleFieldIndex, Location))
members.Add(New TupleElementFieldSymbol(Me, FieldSymbol, tupleFieldIndex, location))
Else
members.Add(New TupleRenamedElementFieldSymbol(Me, FieldSymbol, namesOfVirtualFields(tupleFieldIndex), tupleFieldIndex, Location))
members.Add(New TupleRenamedElementFieldSymbol(Me, FieldSymbol, namesOfVirtualFields(tupleFieldIndex), tupleFieldIndex, location))
End If
ElseIf field.Name = namesOfVirtualFields(tupleFieldIndex) Then
members.Add(New TupleElementFieldSymbol(Me, FieldSymbol, tupleFieldIndex,
......@@ -753,7 +748,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Dim fieldChainLength = NumberOfValueTuples(i + 1, fieldRemainder)
Dim container As NamedTypeSymbol = GetNestedTupleUnderlyingType(_underlyingType, fieldChainLength - 1).OriginalDefinition
Dim DiagnosticInfo = If(container.IsErrorType(),
Dim diagnosticInfo = If(container.IsErrorType(),
Nothing,
ErrorFactory.ErrorInfo(ERRID.ERR_MissingRuntimeHelper,
container.Name & "." & TupleMemberName(fieldRemainder)))
......@@ -761,13 +756,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Dim defaultName As String = TupleMemberName(i + 1)
' Add a field with default name if the given name Is different
If Name <> defaultName Then
members.Add(New TupleErrorFieldSymbol(Me, defaultName, -members.Count - 1, Nothing, _elementTypes(i), DiagnosticInfo))
members.Add(New TupleErrorFieldSymbol(Me, defaultName, -members.Count - 1, Nothing, _elementTypes(i), diagnosticInfo))
End If
members.Add(New TupleErrorFieldSymbol(Me, Name, i,
If(_elementLocations.IsDefault, Nothing, _elementLocations(i)),
_elementTypes(i),
DiagnosticInfo))
diagnosticInfo))
End If
Next
......@@ -793,7 +788,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Dim kind As SymbolKind = symbol.Kind
Select Case kind
Case SymbolKind.[Event]
Dim tupleUnderlyingEvent As EventSymbol = (DirectCast(symbol, EventSymbol)).TupleUnderlyingEvent
Dim tupleUnderlyingEvent As EventSymbol = DirectCast(symbol, EventSymbol).TupleUnderlyingEvent
Dim associatedField As FieldSymbol = tupleUnderlyingEvent.AssociatedField
If associatedField IsNot Nothing Then
......@@ -805,16 +800,16 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
smallDictionary.Add(tupleUnderlyingEvent.OriginalDefinition, symbol)
Case SymbolKind.Field
Dim tupleUnderlyingField As FieldSymbol = (DirectCast(symbol, FieldSymbol)).TupleUnderlyingField
Dim tupleUnderlyingField As FieldSymbol = DirectCast(symbol, FieldSymbol).TupleUnderlyingField
If tupleUnderlyingField IsNot Nothing Then
smallDictionary(tupleUnderlyingField.OriginalDefinition) = symbol
End If
Case SymbolKind.Method
smallDictionary.Add((DirectCast(symbol, MethodSymbol)).TupleUnderlyingMethod.OriginalDefinition, symbol)
smallDictionary.Add(DirectCast(symbol, MethodSymbol).TupleUnderlyingMethod.OriginalDefinition, symbol)
Case SymbolKind.Property
smallDictionary.Add((DirectCast(symbol, PropertySymbol)).TupleUnderlyingProperty.OriginalDefinition, symbol)
smallDictionary.Add(DirectCast(symbol, PropertySymbol).TupleUnderlyingProperty.OriginalDefinition, symbol)
Case Else
Throw ExceptionUtilities.UnexpectedValue(symbol.Kind)
......@@ -836,7 +831,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Dim symbol As Symbol = Nothing
If Me.UnderlyingDefinitionToMemberMap.TryGetValue(originalDefinition, symbol) Then
result = CType((CObj(symbol)), TMember)
result = CType(symbol, TMember)
Return result
End If
End If
......@@ -850,19 +845,19 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Public Overrides Function GetTypeMembers() As ImmutableArray(Of NamedTypeSymbol)
' do Not support nested types at the moment
' do not support nested types at the moment
Debug.Assert(Not GetMembers().Any(Function(m) m.Kind = SymbolKind.NamedType))
Return ImmutableArray(Of NamedTypeSymbol).Empty
End Function
Public Overrides Function GetTypeMembers(name As String) As ImmutableArray(Of NamedTypeSymbol)
' do Not support nested types at the moment
' do not support nested types at the moment
Debug.Assert(Not GetMembers().Any(Function(m) m.Kind = SymbolKind.NamedType))
Return ImmutableArray(Of NamedTypeSymbol).Empty
End Function
Public Overrides Function GetTypeMembers(name As String, arity As Integer) As ImmutableArray(Of NamedTypeSymbol)
' do Not support nested types at the moment
' do not support nested types at the moment
Debug.Assert(Not GetMembers().Any(Function(m) m.Kind = SymbolKind.NamedType))
Return ImmutableArray(Of NamedTypeSymbol).Empty
End Function
......
......@@ -15,93 +15,93 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Friend MustInherit Class WrappedEventSymbol
Inherits EventSymbol
Protected _underlyingEvent As EventSymbol
Protected ReadOnly _underlyingEvent As EventSymbol
Public ReadOnly Property UnderlyingEvent() As EventSymbol
Public ReadOnly Property UnderlyingEvent As EventSymbol
Get
Return Me._underlyingEvent
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me._underlyingEvent.IsImplicitlyDeclared
End Get
End Property
Friend Overrides ReadOnly Property HasSpecialName() As Boolean
Friend Overrides ReadOnly Property HasSpecialName As Boolean
Get
Return Me._underlyingEvent.HasSpecialName
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._underlyingEvent.Name
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._underlyingEvent.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me._underlyingEvent.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property DeclaredAccessibility() As Accessibility
Public Overrides ReadOnly Property DeclaredAccessibility As Accessibility
Get
Return Me._underlyingEvent.DeclaredAccessibility
End Get
End Property
Public Overrides ReadOnly Property IsShared() As Boolean
Public Overrides ReadOnly Property IsShared As Boolean
Get
Return Me._underlyingEvent.IsShared
End Get
End Property
Public Overrides ReadOnly Property IsOverridable() As Boolean
Public Overrides ReadOnly Property IsOverridable As Boolean
Get
Return Me._underlyingEvent.IsOverridable
End Get
End Property
Public Overrides ReadOnly Property IsOverrides() As Boolean
Public Overrides ReadOnly Property IsOverrides As Boolean
Get
Return Me._underlyingEvent.IsOverrides
End Get
End Property
Public Overrides ReadOnly Property IsMustOverride() As Boolean
Public Overrides ReadOnly Property IsMustOverride As Boolean
Get
Return Me._underlyingEvent.IsMustOverride
End Get
End Property
Public Overrides ReadOnly Property IsNotOverridable() As Boolean
Public Overrides ReadOnly Property IsNotOverridable As Boolean
Get
Return Me._underlyingEvent.IsNotOverridable
End Get
End Property
Friend Overrides ReadOnly Property ObsoleteAttributeData() As ObsoleteAttributeData
Friend Overrides ReadOnly Property ObsoleteAttributeData As ObsoleteAttributeData
Get
Return Me._underlyingEvent.ObsoleteAttributeData
End Get
End Property
Public Overrides ReadOnly Property IsWindowsRuntimeEvent() As Boolean
Public Overrides ReadOnly Property IsWindowsRuntimeEvent As Boolean
Get
Return Me._underlyingEvent.IsWindowsRuntimeEvent
End Get
End Property
Friend Overrides ReadOnly Property HasRuntimeSpecialName() As Boolean
Friend Overrides ReadOnly Property HasRuntimeSpecialName As Boolean
Get
Return Me._underlyingEvent.HasRuntimeSpecialName
End Get
......
......@@ -17,109 +17,109 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Protected _underlyingField As FieldSymbol
Public ReadOnly Property UnderlyingField() As FieldSymbol
Public ReadOnly Property UnderlyingField As FieldSymbol
Get
Return Me._underlyingField
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me._underlyingField.IsImplicitlyDeclared
End Get
End Property
Public Overrides ReadOnly Property DeclaredAccessibility() As Accessibility
Public Overrides ReadOnly Property DeclaredAccessibility As Accessibility
Get
Return Me._underlyingField.DeclaredAccessibility
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._underlyingField.Name
End Get
End Property
Friend Overrides ReadOnly Property HasSpecialName() As Boolean
Friend Overrides ReadOnly Property HasSpecialName As Boolean
Get
Return Me._underlyingField.HasSpecialName
End Get
End Property
Friend Overrides ReadOnly Property HasRuntimeSpecialName() As Boolean
Friend Overrides ReadOnly Property HasRuntimeSpecialName As Boolean
Get
Return Me._underlyingField.HasRuntimeSpecialName
End Get
End Property
Friend Overrides ReadOnly Property IsNotSerialized() As Boolean
Friend Overrides ReadOnly Property IsNotSerialized As Boolean
Get
Return Me._underlyingField.IsNotSerialized
End Get
End Property
Friend Overrides ReadOnly Property IsMarshalledExplicitly() As Boolean
Friend Overrides ReadOnly Property IsMarshalledExplicitly As Boolean
Get
Return Me._underlyingField.IsMarshalledExplicitly
End Get
End Property
Friend Overrides ReadOnly Property MarshallingInformation() As MarshalPseudoCustomAttributeData
Friend Overrides ReadOnly Property MarshallingInformation As MarshalPseudoCustomAttributeData
Get
Return Me._underlyingField.MarshallingInformation
End Get
End Property
Friend Overrides ReadOnly Property MarshallingDescriptor() As ImmutableArray(Of Byte)
Friend Overrides ReadOnly Property MarshallingDescriptor As ImmutableArray(Of Byte)
Get
Return Me._underlyingField.MarshallingDescriptor
End Get
End Property
Friend Overrides ReadOnly Property TypeLayoutOffset() As Integer?
Friend Overrides ReadOnly Property TypeLayoutOffset As Integer?
Get
Return Me._underlyingField.TypeLayoutOffset
End Get
End Property
Public Overrides ReadOnly Property IsReadOnly() As Boolean
Public Overrides ReadOnly Property IsReadOnly As Boolean
Get
Return Me._underlyingField.IsReadOnly
End Get
End Property
Public Overrides ReadOnly Property IsConst() As Boolean
Public Overrides ReadOnly Property IsConst As Boolean
Get
Return Me._underlyingField.IsConst
End Get
End Property
Friend Overrides ReadOnly Property ObsoleteAttributeData() As ObsoleteAttributeData
Friend Overrides ReadOnly Property ObsoleteAttributeData As ObsoleteAttributeData
Get
Return Me._underlyingField.ObsoleteAttributeData
End Get
End Property
Public Overrides ReadOnly Property ConstantValue() As Object
Public Overrides ReadOnly Property ConstantValue As Object
Get
Return Me._underlyingField.ConstantValue
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._underlyingField.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me._underlyingField.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property IsShared() As Boolean
Public Overrides ReadOnly Property IsShared As Boolean
Get
Return Me._underlyingField.IsShared
End Get
......
......@@ -17,69 +17,69 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Friend MustInherit Class WrappedMethodSymbol
Inherits MethodSymbol
Public MustOverride ReadOnly Property UnderlyingMethod() As MethodSymbol
Public MustOverride ReadOnly Property UnderlyingMethod As MethodSymbol
Public Overrides ReadOnly Property IsVararg() As Boolean
Public Overrides ReadOnly Property IsVararg As Boolean
Get
Return Me.UnderlyingMethod.IsVararg
End Get
End Property
Public Overrides ReadOnly Property IsGenericMethod() As Boolean
Public Overrides ReadOnly Property IsGenericMethod As Boolean
Get
Return Me.UnderlyingMethod.IsGenericMethod
End Get
End Property
Public Overrides ReadOnly Property Arity() As Integer
Public Overrides ReadOnly Property Arity As Integer
Get
Return Me.UnderlyingMethod.Arity
End Get
End Property
Public Overrides ReadOnly Property ReturnsByRef() As Boolean
Public Overrides ReadOnly Property ReturnsByRef As Boolean
Get
Return Me.UnderlyingMethod.ReturnsByRef
End Get
End Property
Friend Overrides ReadOnly Property ParameterCount() As Integer
Friend Overrides ReadOnly Property ParameterCount As Integer
Get
Return Me.UnderlyingMethod.ParameterCount
End Get
End Property
Public Overrides ReadOnly Property IsExtensionMethod() As Boolean
Public Overrides ReadOnly Property IsExtensionMethod As Boolean
Get
Return Me.UnderlyingMethod.IsExtensionMethod
End Get
End Property
Friend Overrides ReadOnly Property IsHiddenBySignature() As Boolean
Friend Overrides ReadOnly Property IsHiddenBySignature As Boolean
Get
Return Me.UnderlyingMethod.IsHiddenBySignature
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me.UnderlyingMethod.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me.UnderlyingMethod.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property DeclaredAccessibility() As Accessibility
Public Overrides ReadOnly Property DeclaredAccessibility As Accessibility
Get
Return Me.UnderlyingMethod.DeclaredAccessibility
End Get
End Property
Public Overrides ReadOnly Property IsShared() As Boolean
Public Overrides ReadOnly Property IsShared As Boolean
Get
Return Me.UnderlyingMethod.IsShared
End Get
......@@ -91,115 +91,115 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Public Overrides ReadOnly Property IsAsync() As Boolean
Public Overrides ReadOnly Property IsAsync As Boolean
Get
Return Me.UnderlyingMethod.IsAsync
End Get
End Property
Public Overrides ReadOnly Property IsOverrides() As Boolean
Public Overrides ReadOnly Property IsOverrides As Boolean
Get
Return Me.UnderlyingMethod.IsOverrides
End Get
End Property
Public Overrides ReadOnly Property IsMustOverride() As Boolean
Public Overrides ReadOnly Property IsMustOverride As Boolean
Get
Return Me.UnderlyingMethod.IsMustOverride
End Get
End Property
Public Overrides ReadOnly Property IsNotOverridable() As Boolean
Public Overrides ReadOnly Property IsNotOverridable As Boolean
Get
Return Me.UnderlyingMethod.IsNotOverridable
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me.UnderlyingMethod.IsImplicitlyDeclared
End Get
End Property
Friend Overrides ReadOnly Property IsMetadataFinal() As Boolean
Friend Overrides ReadOnly Property IsMetadataFinal As Boolean
Get
Return Me.UnderlyingMethod.IsMetadataFinal
End Get
End Property
Friend Overrides ReadOnly Property ReturnTypeMarshallingInformation() As MarshalPseudoCustomAttributeData
Friend Overrides ReadOnly Property ReturnTypeMarshallingInformation As MarshalPseudoCustomAttributeData
Get
Return Me.UnderlyingMethod.ReturnTypeMarshallingInformation
End Get
End Property
Friend Overrides ReadOnly Property HasDeclarativeSecurity() As Boolean
Friend Overrides ReadOnly Property HasDeclarativeSecurity As Boolean
Get
Return Me.UnderlyingMethod.HasDeclarativeSecurity
End Get
End Property
Friend Overrides ReadOnly Property ObsoleteAttributeData() As ObsoleteAttributeData
Friend Overrides ReadOnly Property ObsoleteAttributeData As ObsoleteAttributeData
Get
Return Me.UnderlyingMethod.ObsoleteAttributeData
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me.UnderlyingMethod.Name
End Get
End Property
Friend Overrides ReadOnly Property HasSpecialName() As Boolean
Friend Overrides ReadOnly Property HasSpecialName As Boolean
Get
Return Me.UnderlyingMethod.HasSpecialName
End Get
End Property
Friend Overrides ReadOnly Property ImplementationAttributes() As MethodImplAttributes
Friend Overrides ReadOnly Property ImplementationAttributes As MethodImplAttributes
Get
Return Me.UnderlyingMethod.ImplementationAttributes
End Get
End Property
Public Overrides ReadOnly Property MethodKind() As MethodKind
Public Overrides ReadOnly Property MethodKind As MethodKind
Get
Return Me.UnderlyingMethod.MethodKind
End Get
End Property
Friend Overrides ReadOnly Property CallingConvention() As Cci.CallingConvention
Friend Overrides ReadOnly Property CallingConvention As Cci.CallingConvention
Get
Return Me.UnderlyingMethod.CallingConvention
End Get
End Property
Friend Overrides ReadOnly Property IsAccessCheckedOnOverride() As Boolean
Friend Overrides ReadOnly Property IsAccessCheckedOnOverride As Boolean
Get
Return Me.UnderlyingMethod.IsAccessCheckedOnOverride
End Get
End Property
Friend Overrides ReadOnly Property IsExternal() As Boolean
Friend Overrides ReadOnly Property IsExternal As Boolean
Get
Return Me.UnderlyingMethod.IsExternal
End Get
End Property
Friend Overrides ReadOnly Property HasRuntimeSpecialName() As Boolean
Friend Overrides ReadOnly Property HasRuntimeSpecialName As Boolean
Get
Return Me.UnderlyingMethod.HasRuntimeSpecialName
End Get
End Property
Friend Overrides ReadOnly Property ReturnValueIsMarshalledExplicitly() As Boolean
Friend Overrides ReadOnly Property ReturnValueIsMarshalledExplicitly As Boolean
Get
Return Me.UnderlyingMethod.ReturnValueIsMarshalledExplicitly
End Get
End Property
Friend Overrides ReadOnly Property ReturnValueMarshallingDescriptor() As ImmutableArray(Of Byte)
Friend Overrides ReadOnly Property ReturnValueMarshallingDescriptor As ImmutableArray(Of Byte)
Get
Return Me.UnderlyingMethod.ReturnValueMarshallingDescriptor
End Get
......
......@@ -19,115 +19,115 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Protected _underlyingType As NamedTypeSymbol
Public ReadOnly Property UnderlyingNamedType() As NamedTypeSymbol
Public ReadOnly Property UnderlyingNamedType As NamedTypeSymbol
Get
Return Me._underlyingType
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me._underlyingType.IsImplicitlyDeclared
End Get
End Property
Public Overrides ReadOnly Property Arity() As Integer
Public Overrides ReadOnly Property Arity As Integer
Get
Return Me._underlyingType.Arity
End Get
End Property
Public Overrides ReadOnly Property MightContainExtensionMethods() As Boolean
Public Overrides ReadOnly Property MightContainExtensionMethods As Boolean
Get
Return Me._underlyingType.MightContainExtensionMethods
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._underlyingType.Name
End Get
End Property
Public Overrides ReadOnly Property MetadataName() As String
Public Overrides ReadOnly Property MetadataName As String
Get
Return Me._underlyingType.MetadataName
End Get
End Property
Friend Overrides ReadOnly Property HasSpecialName() As Boolean
Friend Overrides ReadOnly Property HasSpecialName As Boolean
Get
Return Me._underlyingType.HasSpecialName
End Get
End Property
Friend Overrides ReadOnly Property MangleName() As Boolean
Friend Overrides ReadOnly Property MangleName As Boolean
Get
Return Me._underlyingType.MangleName
End Get
End Property
Public Overrides ReadOnly Property DeclaredAccessibility() As Accessibility
Public Overrides ReadOnly Property DeclaredAccessibility As Accessibility
Get
Return Me._underlyingType.DeclaredAccessibility
End Get
End Property
Public Overrides ReadOnly Property TypeKind() As TypeKind
Public Overrides ReadOnly Property TypeKind As TypeKind
Get
Return Me._underlyingType.TypeKind
End Get
End Property
Friend Overrides ReadOnly Property IsInterface() As Boolean
Friend Overrides ReadOnly Property IsInterface As Boolean
Get
Return Me._underlyingType.IsInterface
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._underlyingType.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me._underlyingType.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property IsMustInherit() As Boolean
Public Overrides ReadOnly Property IsMustInherit As Boolean
Get
Return Me._underlyingType.IsMustInherit
End Get
End Property
Public Overrides ReadOnly Property IsNotInheritable() As Boolean
Public Overrides ReadOnly Property IsNotInheritable As Boolean
Get
Return Me._underlyingType.IsNotInheritable
End Get
End Property
Friend Overrides ReadOnly Property IsMetadataAbstract() As Boolean
Friend Overrides ReadOnly Property IsMetadataAbstract As Boolean
Get
Return Me._underlyingType.IsMetadataAbstract
End Get
End Property
Friend Overrides ReadOnly Property IsMetadataSealed() As Boolean
Friend Overrides ReadOnly Property IsMetadataSealed As Boolean
Get
Return Me._underlyingType.IsMetadataSealed
End Get
End Property
Friend Overrides ReadOnly Property DefaultPropertyName() As String
Friend Overrides ReadOnly Property DefaultPropertyName As String
Get
Return Me._underlyingType.DefaultPropertyName
End Get
End Property
Friend Overrides ReadOnly Property CoClassType() As TypeSymbol
Friend Overrides ReadOnly Property CoClassType As TypeSymbol
Get
Return Me._underlyingType.CoClassType
End Get
......@@ -139,43 +139,43 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Get
End Property
Friend Overrides ReadOnly Property ObsoleteAttributeData() As ObsoleteAttributeData
Friend Overrides ReadOnly Property ObsoleteAttributeData As ObsoleteAttributeData
Get
Return Me._underlyingType.ObsoleteAttributeData
End Get
End Property
Friend Overrides ReadOnly Property ShouldAddWinRTMembers() As Boolean
Friend Overrides ReadOnly Property ShouldAddWinRTMembers As Boolean
Get
Return Me._underlyingType.ShouldAddWinRTMembers
End Get
End Property
Friend Overrides ReadOnly Property IsWindowsRuntimeImport() As Boolean
Friend Overrides ReadOnly Property IsWindowsRuntimeImport As Boolean
Get
Return Me._underlyingType.IsWindowsRuntimeImport
End Get
End Property
Friend Overrides ReadOnly Property Layout() As TypeLayout
Friend Overrides ReadOnly Property Layout As TypeLayout
Get
Return Me._underlyingType.Layout
End Get
End Property
Friend Overrides ReadOnly Property MarshallingCharSet() As CharSet
Friend Overrides ReadOnly Property MarshallingCharSet As CharSet
Get
Return Me._underlyingType.MarshallingCharSet
End Get
End Property
Friend Overrides ReadOnly Property IsSerializable() As Boolean
Friend Overrides ReadOnly Property IsSerializable As Boolean
Get
Return Me._underlyingType.IsSerializable
End Get
End Property
Friend Overrides ReadOnly Property HasDeclarativeSecurity() As Boolean
Friend Overrides ReadOnly Property HasDeclarativeSecurity As Boolean
Get
Return Me._underlyingType.HasDeclarativeSecurity
End Get
......
......@@ -18,133 +18,133 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Protected _underlyingParameter As ParameterSymbol
Public ReadOnly Property UnderlyingParameter() As ParameterSymbol
Public ReadOnly Property UnderlyingParameter As ParameterSymbol
Get
Return Me._underlyingParameter
End Get
End Property
Public Overrides ReadOnly Property Type() As TypeSymbol
Public Overrides ReadOnly Property Type As TypeSymbol
Get
Return Me._underlyingParameter.Type
End Get
End Property
Public Overrides ReadOnly Property IsByRef() As Boolean
Public Overrides ReadOnly Property IsByRef As Boolean
Get
Return Me._underlyingParameter.IsByRef
End Get
End Property
Friend Overrides ReadOnly Property IsMetadataIn() As Boolean
Friend Overrides ReadOnly Property IsMetadataIn As Boolean
Get
Return Me._underlyingParameter.IsMetadataIn
End Get
End Property
Friend Overrides ReadOnly Property IsMetadataOut() As Boolean
Friend Overrides ReadOnly Property IsMetadataOut As Boolean
Get
Return Me._underlyingParameter.IsMetadataOut
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._underlyingParameter.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me._underlyingParameter.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property Ordinal() As Integer
Public Overrides ReadOnly Property Ordinal As Integer
Get
Return Me._underlyingParameter.Ordinal
End Get
End Property
Public Overrides ReadOnly Property IsParamArray() As Boolean
Public Overrides ReadOnly Property IsParamArray As Boolean
Get
Return Me._underlyingParameter.IsParamArray
End Get
End Property
Friend Overrides ReadOnly Property IsMetadataOptional() As Boolean
Friend Overrides ReadOnly Property IsMetadataOptional As Boolean
Get
Return Me._underlyingParameter.IsMetadataOptional
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me._underlyingParameter.IsImplicitlyDeclared
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._underlyingParameter.Name
End Get
End Property
Public Overrides ReadOnly Property MetadataName() As String
Public Overrides ReadOnly Property MetadataName As String
Get
Return Me._underlyingParameter.MetadataName
End Get
End Property
Public Overrides ReadOnly Property CustomModifiers() As ImmutableArray(Of CustomModifier)
Public Overrides ReadOnly Property CustomModifiers As ImmutableArray(Of CustomModifier)
Get
Return Me._underlyingParameter.CustomModifiers
End Get
End Property
Friend Overrides ReadOnly Property MarshallingInformation() As MarshalPseudoCustomAttributeData
Friend Overrides ReadOnly Property MarshallingInformation As MarshalPseudoCustomAttributeData
Get
Return Me._underlyingParameter.MarshallingInformation
End Get
End Property
Friend Overrides ReadOnly Property MarshallingType() As UnmanagedType
Friend Overrides ReadOnly Property MarshallingType As UnmanagedType
Get
Return Me._underlyingParameter.MarshallingType
End Get
End Property
Friend Overrides ReadOnly Property IsIDispatchConstant() As Boolean
Friend Overrides ReadOnly Property IsIDispatchConstant As Boolean
Get
Return Me._underlyingParameter.IsIDispatchConstant
End Get
End Property
Friend Overrides ReadOnly Property IsIUnknownConstant() As Boolean
Friend Overrides ReadOnly Property IsIUnknownConstant As Boolean
Get
Return Me._underlyingParameter.IsIUnknownConstant
End Get
End Property
Friend Overrides ReadOnly Property IsCallerLineNumber() As Boolean
Friend Overrides ReadOnly Property IsCallerLineNumber As Boolean
Get
Return Me._underlyingParameter.IsCallerLineNumber
End Get
End Property
Friend Overrides ReadOnly Property IsCallerFilePath() As Boolean
Friend Overrides ReadOnly Property IsCallerFilePath As Boolean
Get
Return Me._underlyingParameter.IsCallerFilePath
End Get
End Property
Friend Overrides ReadOnly Property IsCallerMemberName() As Boolean
Friend Overrides ReadOnly Property IsCallerMemberName As Boolean
Get
Return Me._underlyingParameter.IsCallerMemberName
End Get
End Property
Friend Overrides ReadOnly Property CountOfCustomModifiersPrecedingByRef() As UShort
Friend Overrides ReadOnly Property CountOfCustomModifiersPrecedingByRef As UShort
Get
Return Me._underlyingParameter.CountOfCustomModifiersPrecedingByRef
End Get
......
......@@ -18,109 +18,109 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Protected _underlyingProperty As PropertySymbol
Public ReadOnly Property UnderlyingProperty() As PropertySymbol
Public ReadOnly Property UnderlyingProperty As PropertySymbol
Get
Return Me._underlyingProperty
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me._underlyingProperty.IsImplicitlyDeclared
End Get
End Property
Public Overrides ReadOnly Property ReturnsByRef() As Boolean
Public Overrides ReadOnly Property ReturnsByRef As Boolean
Get
Return Me._underlyingProperty.ReturnsByRef
End Get
End Property
Public Overrides ReadOnly Property IsDefault() As Boolean
Public Overrides ReadOnly Property IsDefault As Boolean
Get
Return Me._underlyingProperty.IsDefault
End Get
End Property
Friend Overrides ReadOnly Property CallingConvention() As CallingConvention
Friend Overrides ReadOnly Property CallingConvention As CallingConvention
Get
Return Me._underlyingProperty.CallingConvention
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._underlyingProperty.Name
End Get
End Property
Friend Overrides ReadOnly Property HasSpecialName() As Boolean
Friend Overrides ReadOnly Property HasSpecialName As Boolean
Get
Return Me._underlyingProperty.HasSpecialName
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._underlyingProperty.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me._underlyingProperty.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property DeclaredAccessibility() As Accessibility
Public Overrides ReadOnly Property DeclaredAccessibility As Accessibility
Get
Return Me._underlyingProperty.DeclaredAccessibility
End Get
End Property
Public Overrides ReadOnly Property IsShared() As Boolean
Public Overrides ReadOnly Property IsShared As Boolean
Get
Return Me._underlyingProperty.IsShared
End Get
End Property
Public Overrides ReadOnly Property IsOverridable() As Boolean
Public Overrides ReadOnly Property IsOverridable As Boolean
Get
Return Me._underlyingProperty.IsOverridable
End Get
End Property
Public Overrides ReadOnly Property IsOverrides() As Boolean
Public Overrides ReadOnly Property IsOverrides As Boolean
Get
Return Me._underlyingProperty.IsOverrides
End Get
End Property
Public Overrides ReadOnly Property IsMustOverride() As Boolean
Public Overrides ReadOnly Property IsMustOverride As Boolean
Get
Return Me._underlyingProperty.IsMustOverride
End Get
End Property
Public Overrides ReadOnly Property IsNotOverridable() As Boolean
Public Overrides ReadOnly Property IsNotOverridable As Boolean
Get
Return Me._underlyingProperty.IsNotOverridable
End Get
End Property
Friend Overrides ReadOnly Property ObsoleteAttributeData() As ObsoleteAttributeData
Friend Overrides ReadOnly Property ObsoleteAttributeData As ObsoleteAttributeData
Get
Return Me._underlyingProperty.ObsoleteAttributeData
End Get
End Property
Public Overrides ReadOnly Property MetadataName() As String
Public Overrides ReadOnly Property MetadataName As String
Get
Return Me._underlyingProperty.MetadataName
End Get
End Property
Friend Overrides ReadOnly Property HasRuntimeSpecialName() As Boolean
Friend Overrides ReadOnly Property HasRuntimeSpecialName As Boolean
Get
Return Me._underlyingProperty.HasRuntimeSpecialName
End Get
......
......@@ -17,67 +17,67 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
Protected _underlyingTypeParameter As TypeParameterSymbol
Public ReadOnly Property UnderlyingTypeParameter() As TypeParameterSymbol
Public ReadOnly Property UnderlyingTypeParameter As TypeParameterSymbol
Get
Return Me._underlyingTypeParameter
End Get
End Property
Public Overrides ReadOnly Property IsImplicitlyDeclared() As Boolean
Public Overrides ReadOnly Property IsImplicitlyDeclared As Boolean
Get
Return Me._underlyingTypeParameter.IsImplicitlyDeclared
End Get
End Property
Public Overrides ReadOnly Property TypeParameterKind() As TypeParameterKind
Public Overrides ReadOnly Property TypeParameterKind As TypeParameterKind
Get
Return Me._underlyingTypeParameter.TypeParameterKind
End Get
End Property
Public Overrides ReadOnly Property Ordinal() As Integer
Public Overrides ReadOnly Property Ordinal As Integer
Get
Return Me._underlyingTypeParameter.Ordinal
End Get
End Property
Public Overrides ReadOnly Property HasConstructorConstraint() As Boolean
Public Overrides ReadOnly Property HasConstructorConstraint As Boolean
Get
Return Me._underlyingTypeParameter.HasConstructorConstraint
End Get
End Property
Public Overrides ReadOnly Property HasReferenceTypeConstraint() As Boolean
Public Overrides ReadOnly Property HasReferenceTypeConstraint As Boolean
Get
Return Me._underlyingTypeParameter.HasReferenceTypeConstraint
End Get
End Property
Public Overrides ReadOnly Property HasValueTypeConstraint() As Boolean
Public Overrides ReadOnly Property HasValueTypeConstraint As Boolean
Get
Return Me._underlyingTypeParameter.HasValueTypeConstraint
End Get
End Property
Public Overrides ReadOnly Property Variance() As VarianceKind
Public Overrides ReadOnly Property Variance As VarianceKind
Get
Return Me._underlyingTypeParameter.Variance
End Get
End Property
Public Overrides ReadOnly Property Locations() As ImmutableArray(Of Location)
Public Overrides ReadOnly Property Locations As ImmutableArray(Of Location)
Get
Return Me._underlyingTypeParameter.Locations
End Get
End Property
Public Overrides ReadOnly Property DeclaringSyntaxReferences() As ImmutableArray(Of SyntaxReference)
Public Overrides ReadOnly Property DeclaringSyntaxReferences As ImmutableArray(Of SyntaxReference)
Get
Return Me._underlyingTypeParameter.DeclaringSyntaxReferences
End Get
End Property
Public Overrides ReadOnly Property Name() As String
Public Overrides ReadOnly Property Name As String
Get
Return Me._underlyingTypeParameter.Name
End Get
......
......@@ -114,9 +114,9 @@ Imports System
Module C
Sub Main()
Dim t as (Integer, Integer, Integer, integer, integer, integer, integer, integer, integer, Integer, Integer, Integer, integer, integer, integer, integer, integer, integer)
Dim t as (Integer, Integer, Integer, integer, integer, integer, integer, integer, integer, Integer, Integer, String, integer, integer, integer, integer, String, integer)
t.Item17 = 42
t.Item17 = "hello"
t.Item12 = t.Item17
console.writeline(t.Item12)
End Sub
......@@ -124,36 +124,35 @@ End Module
</file>
</compilation>, expectedOutput:=<![CDATA[
42
hello
]]>, additionalRefs:={ValueTupleRef, SystemRuntimeFacadeRef})
verifier.VerifyIL("C.Main", <![CDATA[
{
// Code size 64 (0x40)
// Code size 67 (0x43)
.maxstack 2
.locals init (System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)) V_0) //t
.locals init (System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)) V_0) //t
IL_0000: ldloca.s V_0
IL_0002: ldflda "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)).Rest As (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)"
IL_0007: ldflda "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer)).Rest As (Integer, Integer, Integer, Integer)"
IL_000c: ldc.i4.s 42
IL_000e: stfld "System.ValueTuple(Of Integer, Integer, Integer, Integer).Item3 As Integer"
IL_0013: ldloca.s V_0
IL_0015: ldflda "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)).Rest As (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)"
IL_001a: ldloc.0
IL_001b: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)).Rest As (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)"
IL_0020: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer)).Rest As (Integer, Integer, Integer, Integer)"
IL_0025: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer).Item3 As Integer"
IL_002a: stfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer)).Item5 As Integer"
IL_002f: ldloc.0
IL_0030: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)).Rest As (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)"
IL_0035: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer)).Item5 As Integer"
IL_003a: call "Sub System.Console.WriteLine(Integer)"
IL_003f: ret
IL_0002: ldflda "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)).Rest As (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)"
IL_0007: ldflda "System.ValueTuple(Of Integer, Integer, Integer, Integer, String, Integer, Integer, (Integer, Integer, String, Integer)).Rest As (Integer, Integer, String, Integer)"
IL_000c: ldstr "hello"
IL_0011: stfld "System.ValueTuple(Of Integer, Integer, String, Integer).Item3 As String"
IL_0016: ldloca.s V_0
IL_0018: ldflda "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)).Rest As (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)"
IL_001d: ldloc.0
IL_001e: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)).Rest As (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)"
IL_0023: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, String, Integer, Integer, (Integer, Integer, String, Integer)).Rest As (Integer, Integer, String, Integer)"
IL_0028: ldfld "System.ValueTuple(Of Integer, Integer, String, Integer).Item3 As String"
IL_002d: stfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, String, Integer, Integer, (Integer, Integer, String, Integer)).Item5 As String"
IL_0032: ldloc.0
IL_0033: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)).Rest As (Integer, Integer, Integer, Integer, String, Integer, Integer, Integer, Integer, String, Integer)"
IL_0038: ldfld "System.ValueTuple(Of Integer, Integer, Integer, Integer, String, Integer, Integer, (Integer, Integer, String, Integer)).Item5 As String"
IL_003d: call "Sub System.Console.WriteLine(String)"
IL_0042: ret
}
]]>)
End Sub
<Fact()>
Public Sub TupleNamedFieldBinding()
......
......@@ -350,8 +350,8 @@ Module Module1
End Function
End Module
]]>.Value,
LanguageVersion.VisualBasic12,
Diagnostic(ERRID.ERR_LanguageVersion, "(Integer, Integer)").WithArguments("12.0", "tuples").WithLocation(4, 19),
Diagnostic(ERRID.ERR_LanguageVersion, "(A As Integer, B As Integer)").WithArguments("12.0", "tuples").WithLocation(5, 19))
LanguageVersion.VisualBasic14,
Diagnostic(ERRID.ERR_LanguageVersion, "(Integer, Integer)").WithArguments("14.0", "tuples").WithLocation(4, 19),
Diagnostic(ERRID.ERR_LanguageVersion, "(A As Integer, B As Integer)").WithArguments("14.0", "tuples").WithLocation(5, 19))
End Sub
End Class
\ No newline at end of file
......@@ -700,7 +700,7 @@ End If]]>.Value,
Assert.Equal(LiteralBase.Decimal, tk.GetBase())
Assert.Equal(42, tk.Value)
Assert.Equal(" 4_2 ", tk.ToFullString())
Assert.Equal("error BC36716: Visual Basic 14.0 does not support digit separators.", tk.Errors().Single().ToString())
Assert.Equal("error BC36716: Visual Basic 15.0 does not support digit separators.", tk.Errors().Single().ToString())
Str = " &H42L "
tk = ScanOnce(Str)
......@@ -729,7 +729,7 @@ End If]]>.Value,
Assert.Equal(LiteralBase.Binary, tk.GetBase())
Assert.Equal(&HAL, tk.Value)
Assert.Equal(" &B1010L ", tk.ToFullString())
Assert.Equal("error BC36716: Visual Basic 14.0 does not support binary literals.", tk.Errors().Single().ToString())
Assert.Equal("error BC36716: Visual Basic 15.0 does not support binary literals.", tk.Errors().Single().ToString())
Str = " &B1_0_1_0L "
tk = ScanOnce(Str)
......@@ -738,8 +738,8 @@ End If]]>.Value,
Assert.Equal(&HAL, tk.Value)
Assert.Equal(" &B1_0_1_0L ", tk.ToFullString())
Assert.Equal(2, tk.Errors().Count)
Assert.Equal("error BC36716: Visual Basic 14.0 does not support digit separators.", tk.Errors()(0).ToString())
Assert.Equal("error BC36716: Visual Basic 14.0 does not support binary literals.", tk.Errors()(1).ToString())
Assert.Equal("error BC36716: Visual Basic 15.0 does not support digit separators.", tk.Errors()(0).ToString())
Assert.Equal("error BC36716: Visual Basic 15.0 does not support binary literals.", tk.Errors()(1).ToString())
End Sub
<Fact>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册