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)
10351035 return string . IsNullOrEmpty ( lambda . Name ) ? GetName ( "func" , lambda ) : lambda . Name ;
10361036 }
10371037
1038+ private HashSet < LabelTarget > _returnTargets ;
10381039 protected override Expression VisitGoto ( GotoExpression node )
10391040 {
10401041 switch ( node . Kind )
@@ -1043,6 +1044,9 @@ protected override Expression VisitGoto(GotoExpression node)
10431044 Write ( "goto " , GetName ( node . Target ) ) ;
10441045 break ;
10451046 case GotoExpressionKind . Return :
1047+ if ( _returnTargets == null )
1048+ _returnTargets = new HashSet < LabelTarget > ( ) ;
1049+ _returnTargets . Add ( node . Target ) ;
10461050 var value = Visit ( "return " , node . Value ) ;
10471051 return node . Update ( node . Target , value ) ;
10481052 case GotoExpressionKind . Break :
@@ -1092,7 +1096,8 @@ protected override Expression VisitInvocation(InvocationExpression node)
10921096
10931097 protected override Expression VisitLabel ( LabelExpression node )
10941098 {
1095- Write ( GetName ( node . Target ) , ":" ) ;
1099+ if ( _returnTargets == null || ! _returnTargets . Contains ( node . Target ) )
1100+ Write ( GetName ( node . Target ) , ":" ) ;
10961101 return node ;
10971102 }
10981103
You can’t perform that action at this time.
0 commit comments