diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 08bffa54a57..23b08bd45ee 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -4635,7 +4635,8 @@ let rec TcModuleOrNamespaceElementNonMutRec (cenv: cenv) parent typeNames scopem let env = MutRecBindingChecking.TcModuleAbbrevDecl cenv scopem env (id, p, m) return ([], [], []), env, env - | SynModuleDecl.Exception (edef, m) -> + | SynModuleDecl.Exception (SynExceptionDefn(exnRepr, withKeyword, ms, mExDefn), m) -> + let edef = SynExceptionDefn(exnRepr, withKeyword, desugarGetSetMembers ms, mExDefn) let binds, decl, env = TcExceptionDeclarations.TcExnDefn cenv env parent (edef, scopem) let defn = TMDefRec(true, [], [decl], binds |> List.map ModuleOrNamespaceBinding.Binding, m) return ([defn], [], []), env, env diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/CheckDeclarationsTests.fs b/tests/FSharp.Compiler.ComponentTests/TypeChecks/CheckDeclarationsTests.fs index 7aa5d1d56f2..1be9ceb6910 100644 --- a/tests/FSharp.Compiler.ComponentTests/TypeChecks/CheckDeclarationsTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/TypeChecks/CheckDeclarationsTests.fs @@ -90,6 +90,19 @@ namespace FSharpTest type Tree = | Empty | Children of Tree +""" + |> compile + |> shouldSucceed + |> ignore + + [] + let ``CheckingExceptionDeclarations - SynMemberDefn.GetSetMember`` () = + FSharp """ +namespace FSharpTest + +exception CustomException of details: string + with + member self.Details with get (): string = self.details """ |> compile |> shouldSucceed