diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 09704614b81..a263eaad8db 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -1334,10 +1334,10 @@ module MutRecBindingChecking = // Phase2B: typecheck the argument to an 'inherits' call and build the new object expr for the inherit-call | Phase2AInherit (synBaseTy, arg, baseValOpt, m) -> - let baseTy, tpenv = TcType cenv NoNewTypars CheckCxs ItemOccurence.Use WarnOnIWSAM.Yes envInstance tpenv synBaseTy - let baseTy = baseTy |> convertToTypeWithMetadataIfPossible g let inheritsExpr, tpenv = - try + try + let baseTy, tpenv = TcType cenv NoNewTypars CheckCxs ItemOccurence.Use WarnOnIWSAM.Yes envInstance tpenv synBaseTy + let baseTy = baseTy |> convertToTypeWithMetadataIfPossible g TcNewExpr cenv envInstance tpenv baseTy (Some synBaseTy.Range) true arg m with RecoverableException e -> errorRecovery e m diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index f4c417c909d..c52865d8804 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -1123,3 +1123,14 @@ let z = builder if symbolUse.Symbol.DisplayName = "builder" then (symbolUse.Range.StartLine, symbolUse.Range.StartColumn), symbolUse.IsFromComputationExpression ] + +module Member = + [] + let ``Inherit 01`` () = + let _, checkResults = getParseAndCheckResults """ +type T() = + inherit Foo() + + let i = 1 +""" + assertHasSymbolUsages ["i"] checkResults