@@ -3599,11 +3599,10 @@ partial ext X
35993599 }
36003600
36013601 [ Fact ]
3602+ [ WorkItem ( "https://github.com/dotnet/roslyn/issues/67311" ) ]
36023603 public void DelegateWithTupleReturnType_TopLevel ( )
36033604 {
36043605 var test = """
3605- System.Console.WriteLine("Hello");
3606-
36073606 delegate int F(int x);
36083607 delegate int G((int, int) x);
36093608 delegate System.ValueTuple<int, int> H();
@@ -3614,48 +3613,6 @@ public void DelegateWithTupleReturnType_TopLevel()
36143613
36153614 N ( SyntaxKind . CompilationUnit ) ;
36163615 {
3617- N ( SyntaxKind . GlobalStatement ) ;
3618- {
3619- N ( SyntaxKind . ExpressionStatement ) ;
3620- {
3621- N ( SyntaxKind . InvocationExpression ) ;
3622- {
3623- N ( SyntaxKind . SimpleMemberAccessExpression ) ;
3624- {
3625- N ( SyntaxKind . SimpleMemberAccessExpression ) ;
3626- {
3627- N ( SyntaxKind . IdentifierName ) ;
3628- {
3629- N ( SyntaxKind . IdentifierToken , "System" ) ;
3630- }
3631- N ( SyntaxKind . DotToken ) ;
3632- N ( SyntaxKind . IdentifierName ) ;
3633- {
3634- N ( SyntaxKind . IdentifierToken , "Console" ) ;
3635- }
3636- }
3637- N ( SyntaxKind . DotToken ) ;
3638- N ( SyntaxKind . IdentifierName ) ;
3639- {
3640- N ( SyntaxKind . IdentifierToken , "WriteLine" ) ;
3641- }
3642- }
3643- N ( SyntaxKind . ArgumentList ) ;
3644- {
3645- N ( SyntaxKind . OpenParenToken ) ;
3646- N ( SyntaxKind . Argument ) ;
3647- {
3648- N ( SyntaxKind . StringLiteralExpression ) ;
3649- {
3650- N ( SyntaxKind . StringLiteralToken , "\" Hello\" " ) ;
3651- }
3652- }
3653- N ( SyntaxKind . CloseParenToken ) ;
3654- }
3655- }
3656- N ( SyntaxKind . SemicolonToken ) ;
3657- }
3658- }
36593616 N ( SyntaxKind . DelegateDeclaration ) ;
36603617 {
36613618 N ( SyntaxKind . DelegateKeyword ) ;
@@ -3790,5 +3747,124 @@ public void DelegateWithTupleReturnType_TopLevel()
37903747 }
37913748 EOF ( ) ;
37923749 }
3750+
3751+ [ Fact ]
3752+ [ WorkItem ( "https://github.com/dotnet/roslyn/issues/67311" ) ]
3753+ public void AnonymousDelegateAtTopLevel ( )
3754+ {
3755+ var test = """
3756+ var f1 = delegate { return 42; };
3757+ var f2 = delegate (int x) { return x * 2; };
3758+ """ ;
3759+
3760+ UsingTree ( test ) ;
3761+
3762+ N ( SyntaxKind . CompilationUnit ) ;
3763+ {
3764+ N ( SyntaxKind . GlobalStatement ) ;
3765+ {
3766+ N ( SyntaxKind . LocalDeclarationStatement ) ;
3767+ {
3768+ N ( SyntaxKind . VariableDeclaration ) ;
3769+ {
3770+ N ( SyntaxKind . IdentifierName ) ;
3771+ {
3772+ N ( SyntaxKind . IdentifierToken , "var" ) ;
3773+ }
3774+ N ( SyntaxKind . VariableDeclarator ) ;
3775+ {
3776+ N ( SyntaxKind . IdentifierToken , "f1" ) ;
3777+ N ( SyntaxKind . EqualsValueClause ) ;
3778+ {
3779+ N ( SyntaxKind . EqualsToken ) ;
3780+ N ( SyntaxKind . AnonymousMethodExpression ) ;
3781+ {
3782+ N ( SyntaxKind . DelegateKeyword ) ;
3783+ N ( SyntaxKind . Block ) ;
3784+ {
3785+ N ( SyntaxKind . OpenBraceToken ) ;
3786+ N ( SyntaxKind . ReturnStatement ) ;
3787+ {
3788+ N ( SyntaxKind . ReturnKeyword ) ;
3789+ N ( SyntaxKind . NumericLiteralExpression ) ;
3790+ {
3791+ N ( SyntaxKind . NumericLiteralToken , "42" ) ;
3792+ }
3793+ N ( SyntaxKind . SemicolonToken ) ;
3794+ }
3795+ N ( SyntaxKind . CloseBraceToken ) ;
3796+ }
3797+ }
3798+ }
3799+ }
3800+ }
3801+ N ( SyntaxKind . SemicolonToken ) ;
3802+ }
3803+ }
3804+ N ( SyntaxKind . GlobalStatement ) ;
3805+ {
3806+ N ( SyntaxKind . LocalDeclarationStatement ) ;
3807+ {
3808+ N ( SyntaxKind . VariableDeclaration ) ;
3809+ {
3810+ N ( SyntaxKind . IdentifierName ) ;
3811+ {
3812+ N ( SyntaxKind . IdentifierToken , "var" ) ;
3813+ }
3814+ N ( SyntaxKind . VariableDeclarator ) ;
3815+ {
3816+ N ( SyntaxKind . IdentifierToken , "f2" ) ;
3817+ N ( SyntaxKind . EqualsValueClause ) ;
3818+ {
3819+ N ( SyntaxKind . EqualsToken ) ;
3820+ N ( SyntaxKind . AnonymousMethodExpression ) ;
3821+ {
3822+ N ( SyntaxKind . DelegateKeyword ) ;
3823+ N ( SyntaxKind . ParameterList ) ;
3824+ {
3825+ N ( SyntaxKind . OpenParenToken ) ;
3826+ N ( SyntaxKind . Parameter ) ;
3827+ {
3828+ N ( SyntaxKind . PredefinedType ) ;
3829+ {
3830+ N ( SyntaxKind . IntKeyword ) ;
3831+ }
3832+ N ( SyntaxKind . IdentifierToken , "x" ) ;
3833+ }
3834+ N ( SyntaxKind . CloseParenToken ) ;
3835+ }
3836+ N ( SyntaxKind . Block ) ;
3837+ {
3838+ N ( SyntaxKind . OpenBraceToken ) ;
3839+ N ( SyntaxKind . ReturnStatement ) ;
3840+ {
3841+ N ( SyntaxKind . ReturnKeyword ) ;
3842+ N ( SyntaxKind . MultiplyExpression ) ;
3843+ {
3844+ N ( SyntaxKind . IdentifierName ) ;
3845+ {
3846+ N ( SyntaxKind . IdentifierToken , "x" ) ;
3847+ }
3848+ N ( SyntaxKind . AsteriskToken ) ;
3849+ N ( SyntaxKind . NumericLiteralExpression ) ;
3850+ {
3851+ N ( SyntaxKind . NumericLiteralToken , "2" ) ;
3852+ }
3853+ }
3854+ N ( SyntaxKind . SemicolonToken ) ;
3855+ }
3856+ N ( SyntaxKind . CloseBraceToken ) ;
3857+ }
3858+ }
3859+ }
3860+ }
3861+ }
3862+ N ( SyntaxKind . SemicolonToken ) ;
3863+ }
3864+ }
3865+ N ( SyntaxKind . EndOfFileToken ) ;
3866+ }
3867+ EOF ( ) ;
3868+ }
37933869 }
37943870}
0 commit comments