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
In order to track feature requirements the optimizer uses variables with names derived from the unit name, e.g., for a unit foo::Bar we generate feature variables __feat%foo__Bar. We here normalize : as _. Since _ is valid in user-specified identifiers this can clash with user code similar to #1499, e.g.,
When setting up feature tracking variables for the optimizer we
previously would normalize `:` as `_`, e.g., `mod::Unit` would lead to
feature variables `__feat%mod__Unit%...`. In various places in the
optimizer we would then use that knowledge to extract module and unit
ID. Since user-specified identifiers can contain literal `_` or `__`
this could confuse the optimizer.
With this patch we now normalize `:` as `@` which is not
user-accessible. We add a new codegen normalization so `@` becomes
`0x40`. This gives a more reliable encoding.
Closes#1504.
In order to track feature requirements the optimizer uses variables with names derived from the unit name, e.g., for a unit
foo::Bar
we generate feature variables__feat%foo__Bar
. We here normalize:
as_
. Since_
is valid in user-specified identifiers this can clash with user code similar to #1499, e.g.,The text was updated successfully, but these errors were encountered: