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
Rewrite matchcontinue as `try ... else ... end try`, which expresses the same
attempt-then-fallback control flow without matchcontinue and assigns the
outputs directly:
* Lookup.lookupVarInPackagesIdent / Lookup.lookupClassInFrame — try the
qualified-import lookup, fall back to the unqualified one.
* DAEUtil (STMT_ASSIGN_ARR traversal) — try the CREF-lhs path, else the
plain path.
* InstSection.instEquationCommon — try the instantiation, else emit the
appropriate error and fail (nested try distinguishes the
state-transition failure from the generic case).
* Static.elabExpList: the enum-array fast path was a side-effecting
`() := matchcontinue`; rewrite as try/else.
* Static.elabCall: rewrite the interactive/scripting matchcontinue as
try/else (try elabCallArgs, else failtrace then elabCallInteractive).
* Static.elabCodeExp_dispatch1: inner `() := matchcontinue` becomes try/else.
* InstSection.instEquationCommon: 3-case matchcontinue becomes nested
try/else.
* InstSection (ALG_WHEN_A): bind when_stmt out of when_stmt_opt after the
branch loop (a when always has at least one branch).
* CevalFunction.evaluateStatement: initialise env := inEnv before the
tail-call assignment loop so the empty-tuple path keeps it set.
Also found code referencing Dangerous.listReverse, which should be
Dangerous.listReverseInPlace (or listReverse).
protected function removeUniqieIdentifierFromCref "Function for Expression.traverseExpBottomUp, removes the constant 'UNIQUEIO' from any cref it might visit."
@@ -3779,7 +3779,7 @@ public function nameUniqueOuterVars "author: BZ, 2008-12
0 commit comments