From 51aca315b3c88f1ed3221167e1f6bd3d6df3f236 Mon Sep 17 00:00:00 2001 From: Alfonso Garcia-Caro Date: Tue, 11 Jan 2022 22:12:22 +0900 Subject: [PATCH] Disable CheckInlineValueIsComplete for Fable --- src/fsharp/Optimizer.fs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/fsharp/Optimizer.fs b/src/fsharp/Optimizer.fs index 72266c6bf1f..1684ab1d25d 100644 --- a/src/fsharp/Optimizer.fs +++ b/src/fsharp/Optimizer.fs @@ -491,10 +491,18 @@ let rec IsPartialExprVal x = | ValValue (_, a) | SizeValue(_, a) -> IsPartialExprVal a +#if FABLE_CLI +// Many Fable packages inline functions that access internal values to resolve generics, this is not an issue +// in "normal" Fable compilations but it raises errors when generating an assembly por precompilation. Disable +// for Fable as it's not an actual error (and if is, we assume it's already been raised during type chedking). +let CheckInlineValueIsComplete (_v: Val) _res = + () +#else let CheckInlineValueIsComplete (v: Val) res = if v.MustInline && IsPartialExprVal res then errorR(Error(FSComp.SR.optValueMarkedInlineButIncomplete(v.DisplayName), v.Range)) //System.Diagnostics.Debug.Assert(false, sprintf "Break for incomplete inline value %s" v.DisplayName) +#endif let check (vref: ValRef) (res: ValInfo) = CheckInlineValueIsComplete vref.Deref res.ValExprInfo