@@ -6915,6 +6915,7 @@ End Function
6915
6915
[ Test ]
6916
6916
[ TestCase ( "nonHiddenElement" ) ]
6917
6917
[ TestCase ( "[nonHiddenElement]" ) ]
6918
+ [ TestCase ( "" ) ]
6918
6919
public void NonHiddenBracketedEnumVariableHasCorrectName ( string enumElementName )
6919
6920
{
6920
6921
var moduleCode = $@ "
@@ -6937,9 +6938,13 @@ End Enum
6937
6938
[ Category ( "Grammar" ) ]
6938
6939
[ Category ( "Resolver" ) ]
6939
6940
[ Test ]
6941
+ [ TestCase ( "nonHiddenElement" , "SomeEnum.nonHiddenElement" , 1 ) ]
6942
+ [ TestCase ( "[nonHiddenElement]" , "SomeEnum.[nonHiddenElement]" , 0 ) ]
6943
+ [ TestCase ( "[nonHiddenElement]" , "SomeEnum.[[nonHiddenElement]]" , 1 ) ]
6940
6944
[ TestCase ( "nonHiddenElement" , "nonHiddenElement" , 1 ) ]
6941
- [ TestCase ( "[nonHiddenElement]" , "[nonHiddenElement]" , 0 ) ]
6942
6945
[ TestCase ( "[nonHiddenElement]" , "[[nonHiddenElement]]" , 1 ) ]
6946
+ [ TestCase ( "" , "SomeEnum.[]" , 1 ) ]
6947
+ [ TestCase ( "" , "[]" , 1 ) ]
6943
6948
public void NonHiddenBracketedEnumVariableHasReference ( string enumElementName , string referenceText , int expectedNumberOfReferences )
6944
6949
{
6945
6950
var moduleCode = $@ "
@@ -6948,7 +6953,7 @@ Private Enum SomeEnum
6948
6953
End Enum
6949
6954
6950
6955
Private Function Test() As Variant
6951
- Debug.Print SomeEnum. { referenceText }
6956
+ Debug.Print { referenceText }
6952
6957
End Function
6953
6958
" ;
6954
6959
@@ -7024,5 +7029,45 @@ End Function
7024
7029
Assert . AreEqual ( "enumElement" , enumMemberReference . IdentifierName ) ;
7025
7030
}
7026
7031
}
7032
+
7033
+ [ Category ( "Grammar" ) ]
7034
+ [ Category ( "Resolver" ) ]
7035
+ [ Test ]
7036
+ [ TestCase ( "TestModule.[Foo]" , "Foo" ) ]
7037
+ [ TestCase ( "TestModule.[Bar] 23" , "Bar" ) ]
7038
+ [ TestCase ( "Debug.Print TestModule.[Baz](42)" , "Baz" ) ]
7039
+ [ TestCase ( "[Foo]" , "Foo" ) ]
7040
+ [ TestCase ( "[Bar] 23" , "Bar" ) ]
7041
+ [ TestCase ( "Debug.Print [Baz](42)" , "Baz" ) ]
7042
+ public void BracketedMemberExpressionCorrectReferencedIdentifierName ( string statement , string expectedReferenceText )
7043
+ {
7044
+ var moduleCode = $@ "
7045
+ Private Sub Foo()
7046
+ End Sub
7047
+
7048
+ Private Sub Bar(arg As Long)
7049
+ End Sub
7050
+
7051
+ Private Function Baz(arg As Long) As Long
7052
+ End Function
7053
+
7054
+ Private Function Test() As Variant
7055
+ { statement }
7056
+ End Function
7057
+ " ;
7058
+
7059
+ var vbe = MockVbeBuilder . BuildFromSingleStandardModule ( moduleCode , "TestModule" , out _ ) ;
7060
+
7061
+ using ( var state = Resolve ( vbe . Object ) )
7062
+ {
7063
+ var module = state . DeclarationFinder
7064
+ . AllModules . Single ( qmn => qmn . ComponentType == ComponentType . StandardModule ) ;
7065
+ var enumMemberReference = state . DeclarationFinder
7066
+ . IdentifierReferences ( module )
7067
+ . Single ( reference => reference . Declaration . DeclarationType . HasFlag ( DeclarationType . Member ) ) ;
7068
+
7069
+ Assert . AreEqual ( expectedReferenceText , enumMemberReference . IdentifierName ) ;
7070
+ }
7071
+ }
7027
7072
}
7028
7073
}
0 commit comments