@@ -846,7 +846,7 @@ public override VisualBasicSyntaxNode VisitLiteralExpression(CSS.LiteralExpressi
846846 )
847847 ) ;
848848 } else {
849- return CommonConversions . Literal ( node . Token . Value , node . Token . Text ) ;
849+ return _commonConversions . Literal ( node . Token . Value , node . Token . Text ) ;
850850 }
851851 }
852852
@@ -915,7 +915,7 @@ public override VisualBasicSyntaxNode VisitPrefixUnaryExpression(CSS.PrefixUnary
915915 return SyntaxFactory . AssignmentStatement (
916916 kind ,
917917 ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) ,
918- SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( kind ) ) , CommonConversions . Literal ( 1 )
918+ SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( kind ) ) , _commonConversions . Literal ( 1 )
919919 ) ;
920920 }
921921 if ( kind == SyntaxKind . AddAssignmentStatement || kind == SyntaxKind . SubtractAssignmentStatement ) {
@@ -925,12 +925,15 @@ public override VisualBasicSyntaxNode VisitPrefixUnaryExpression(CSS.PrefixUnary
925925 else
926926 operatorName = "Decrement" ;
927927 return SyntaxFactory . InvocationExpression (
928- SyntaxFactory . ParseName ( nameof ( System ) + "." + nameof ( System . Threading ) + "." + nameof ( System . Threading . Interlocked ) + "." + operatorName ) ,
928+ SyntaxFactory . ParseName ( GetQualifiedName ( nameof ( System ) , nameof ( System . Threading ) , nameof ( System . Threading . Interlocked ) , operatorName ) ) ,
929929 ExpressionSyntaxExtensions . CreateArgList ( ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) )
930930 ) ;
931931 }
932932 return SyntaxFactory . UnaryExpression ( kind , SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( kind ) ) , ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) ) ;
933933 }
934+ private static string GetQualifiedName ( params string [ ] names ) {
935+ return names . Aggregate ( ( seed , current ) => seed + '.' + current ) ;
936+ }
934937
935938 public override VisualBasicSyntaxNode VisitAssignmentExpression ( CSS . AssignmentExpressionSyntax node )
936939 {
@@ -1003,7 +1006,7 @@ public override VisualBasicSyntaxNode VisitPostfixUnaryExpression(CSS.PostfixUna
10031006 if ( IsReturnValueDiscarded ( node ) ) {
10041007 return SyntaxFactory . AssignmentStatement ( CS . CSharpExtensions . Kind ( node ) . ConvertToken ( TokenContext . Local ) ,
10051008 ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) ,
1006- SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( kind ) ) , CommonConversions . Literal ( 1 )
1009+ SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( kind ) ) , _commonConversions . Literal ( 1 )
10071010 ) ;
10081011 } else {
10091012 string operatorName , minMax ;
@@ -1018,13 +1021,13 @@ public override VisualBasicSyntaxNode VisitPostfixUnaryExpression(CSS.PostfixUna
10181021 op = SyntaxKind . AddExpression ;
10191022 }
10201023 return SyntaxFactory . InvocationExpression (
1021- SyntaxFactory . ParseName ( nameof ( Math ) + "." + minMax ) ,
1024+ SyntaxFactory . ParseName ( GetQualifiedName ( nameof ( System ) , nameof ( Math ) , minMax ) ) ,
10221025 new ExpressionSyntax [ ] {
10231026 SyntaxFactory . InvocationExpression (
1024- SyntaxFactory . ParseName ( " System.Threading.Interlocked." + operatorName ) ,
1027+ SyntaxFactory . ParseName ( GetQualifiedName ( nameof ( System ) , nameof ( System . Threading ) , nameof ( System . Threading . Interlocked ) , operatorName ) ) ,
10251028 ExpressionSyntaxExtensions . CreateArgList ( ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) )
10261029 ) ,
1027- SyntaxFactory . BinaryExpression ( op , ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) , SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( op ) ) , CommonConversions . Literal ( 1 ) )
1030+ SyntaxFactory . BinaryExpression ( op , ( ExpressionSyntax ) node . Operand . Accept ( TriviaConvertingVisitor ) , SyntaxFactory . Token ( VBUtil . GetExpressionOperatorTokenKind ( op ) ) , _commonConversions . Literal ( 1 ) )
10281031 } . CreateArgList ( )
10291032 ) ;
10301033 }
@@ -1262,7 +1265,7 @@ public override VisualBasicSyntaxNode VisitCastExpression(CSS.CastExpressionSynt
12621265 var expr = ( ExpressionSyntax ) node . Expression . Accept ( TriviaConvertingVisitor ) ;
12631266 Func < SyntaxKind , VisualBasicSyntaxNode > toNumber = kind => {
12641267 if ( sourceType ? . SpecialType == SpecialType . System_Char )
1265- return SyntaxFactory . InvocationExpression ( SyntaxFactory . ParseName ( nameof ( Strings . AscW ) ) , ExpressionSyntaxExtensions . CreateArgList ( expr ) ) ;
1268+ return SyntaxFactory . InvocationExpression ( SyntaxFactory . ParseName ( GetQualifiedName ( nameof ( Microsoft ) , nameof ( Microsoft . VisualBasic ) , nameof ( Microsoft . VisualBasic . Strings . AscW ) ) ) , ExpressionSyntaxExtensions . CreateArgList ( expr ) ) ;
12661269 return SyntaxFactory . PredefinedCastExpression ( SyntaxFactory . Token ( kind ) , expr ) ;
12671270 } ;
12681271 switch ( destType . SpecialType ) {
@@ -1272,7 +1275,7 @@ public override VisualBasicSyntaxNode VisitCastExpression(CSS.CastExpressionSynt
12721275 return SyntaxFactory . PredefinedCastExpression ( SyntaxFactory . Token ( SyntaxKind . CBoolKeyword ) , expr ) ;
12731276 case SpecialType . System_Char :
12741277 return sourceType ? . IsNumericType ( ) == true
1275- ? ( VisualBasicSyntaxNode ) SyntaxFactory . InvocationExpression ( SyntaxFactory . ParseName ( nameof ( Strings . ChrW ) ) , ExpressionSyntaxExtensions . CreateArgList ( expr ) )
1278+ ? ( VisualBasicSyntaxNode ) SyntaxFactory . InvocationExpression ( SyntaxFactory . ParseName ( GetQualifiedName ( nameof ( Microsoft ) , nameof ( Microsoft . VisualBasic ) , nameof ( Microsoft . VisualBasic . Strings . ChrW ) ) ) , ExpressionSyntaxExtensions . CreateArgList ( expr ) )
12761279 : SyntaxFactory . PredefinedCastExpression ( SyntaxFactory . Token ( SyntaxKind . CCharKeyword ) , expr ) ;
12771280 case SpecialType . System_SByte :
12781281 return toNumber ( SyntaxKind . CSByteKeyword ) ;
0 commit comments