You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit also adds supports for tracking `synthPending` failures when using
`set_option diagnostics true`.
It also increases limit 2.
closes#3313closes#3927
defthrowMaxHeartbeat (moduleName : Name) (optionName : Name) (max : Nat) : CoreM Unit := do
254
-
let msg := s!"(deterministic) timeout at `{moduleName}`, maximum number of heartbeats ({max/1000}) has been reached\nuse `set_option {optionName} <num>` to set the limit\nuse `set_option {diagnostics.name} true` to get diagnostic information"
256
+
let msg := s!"(deterministic) timeout at `{moduleName}`, maximum number of heartbeats ({max/1000}) has been reached\nuse `set_option {optionName} <num>` to set the limit\n{useDiagnosticMsg}"
descr := "maximum number of nested `synthPending` invocations. When resolving unification constraints, pending type class problems may need to be synthesized. These type class problems may create new unification constraints that again require solving new type class problems. This option puts a threshold on how many nested problems are created."
314
+
}
315
+
309
316
/--
310
317
Contextual information for the `MetaM` monad.
311
318
-/
@@ -321,8 +328,8 @@ structure Context where
321
328
Track the number of nested `synthPending` invocations. Nested invocations can happen
322
329
when the type class resolution invokes `synthPending`.
323
330
324
-
Remark: in the current implementation, `synthPending` fails if `synthPendingDepth > 0`.
325
-
We will add a configuration option if necessary. -/
331
+
Remark: `synthPending` fails if `synthPendingDepth > maxSynthPendingDepth`.
332
+
-/
326
333
synthPendingDepth : Nat := 0
327
334
/--
328
335
A predicate to control whether a constant can be unfolded or not at `whnf`.
0 commit comments