File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -1035,6 +1035,7 @@ private string GetName(LambdaExpression lambda)
1035
1035
return string . IsNullOrEmpty ( lambda . Name ) ? GetName ( "func" , lambda ) : lambda . Name ;
1036
1036
}
1037
1037
1038
+ private HashSet < LabelTarget > _returnTargets ;
1038
1039
protected override Expression VisitGoto ( GotoExpression node )
1039
1040
{
1040
1041
switch ( node . Kind )
@@ -1043,6 +1044,9 @@ protected override Expression VisitGoto(GotoExpression node)
1043
1044
Write ( "goto " , GetName ( node . Target ) ) ;
1044
1045
break ;
1045
1046
case GotoExpressionKind . Return :
1047
+ if ( _returnTargets == null )
1048
+ _returnTargets = new HashSet < LabelTarget > ( ) ;
1049
+ _returnTargets . Add ( node . Target ) ;
1046
1050
var value = Visit ( "return " , node . Value ) ;
1047
1051
return node . Update ( node . Target , value ) ;
1048
1052
case GotoExpressionKind . Break :
@@ -1092,7 +1096,8 @@ protected override Expression VisitInvocation(InvocationExpression node)
1092
1096
1093
1097
protected override Expression VisitLabel ( LabelExpression node )
1094
1098
{
1095
- Write ( GetName ( node . Target ) , ":" ) ;
1099
+ if ( _returnTargets == null || ! _returnTargets . Contains ( node . Target ) )
1100
+ Write ( GetName ( node . Target ) , ":" ) ;
1096
1101
return node ;
1097
1102
}
1098
1103
You can’t perform that action at this time.
0 commit comments