From 0a28f402ead98cb2b3b70a73d6616954b87c0bb6 Mon Sep 17 00:00:00 2001 From: AlekseyTs Date: Mon, 20 Nov 2017 15:48:56 -0800 Subject: [PATCH] Fix System.InvalidOperationException in IOperation factory for an Option statement inside a method body (#23284) Fixes #23283. --- .../Portable/Binding/MemberSemanticModel.vb | 3 +- .../Semantic/IOperation/IOperationTests.vb | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/Compilers/VisualBasic/Portable/Binding/MemberSemanticModel.vb b/src/Compilers/VisualBasic/Portable/Binding/MemberSemanticModel.vb index 84f16905fca..982b7831aae 100644 --- a/src/Compilers/VisualBasic/Portable/Binding/MemberSemanticModel.vb +++ b/src/Compilers/VisualBasic/Portable/Binding/MemberSemanticModel.vb @@ -318,7 +318,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic SyntaxKind.RaiseEventStatement, SyntaxKind.ExpressionStatement, SyntaxKind.YieldStatement, - SyntaxKind.PrintStatement + SyntaxKind.PrintStatement, + SyntaxKind.OptionStatement Return True Case SyntaxKind.IfStatement, diff --git a/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests.vb b/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests.vb index 1dd2ac18bae..8eb82c1766a 100644 --- a/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests.vb +++ b/src/Compilers/VisualBasic/Test/Semantic/IOperation/IOperationTests.vb @@ -872,5 +872,42 @@ End Class ' Verify we return null operation for child nodes of member access expression. Assert.Null(model.GetOperation(expr.Name)) End Sub + + + + + Public Sub TestOptionStatement_01() + Dim source = .Value + + Dim expectedOperationTree = .Value + + Dim expectedDiagnostics = .Value + + VerifyOperationTreeAndDiagnosticsForTest(Of StatementSyntax)(source, expectedOperationTree, expectedDiagnostics) + End Sub + + + + + Public Sub TestOptionStatement_02() + Dim source = .Value + + VerifyNoOperationTreeForTest(Of StatementSyntax)(source) + End Sub End Class End Namespace -- GitLab