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
When working on #4045, I noticed that there was one case where a direct translation of klabel(X) → overload(X) did not behave as we expected it to. This is because we missed a behaviour of klabel(X) when originally specifying the overload(_) migration.
That behaviour is that klabel(X) will create an internal1klabel for productions that would not otherwise have one. The implementation of overloading in ModuleToKORE requires implicitly2 that overloaded symbols have an internal klabel associated with them. Under the previous implementation of overloading, it was not possible to generate an overloaded symbol without a klabel, but the new implementation permits this.
To fix the issue, we should add a check that overloaded subsorting productions have an associated symbol(_) attribute so that they have an internal klabel during KORE generation.
Footnotes
These internal klabels are different to the attribute klabel(_). Roughly speaking, productions that have an internal klabel will be generated as KORE symbols, and those that don't will not. For instance, subsorting productions will not usually be KORE symbols. ↩
i.e. it crashes when this assumption is violated. ↩
The text was updated successfully, but these errors were encountered:
When working on #4045, I noticed that there was one case where a direct translation of
klabel(X)
→overload(X)
did not behave as we expected it to. This is because we missed a behaviour ofklabel(X)
when originally specifying theoverload(_)
migration.That behaviour is that
klabel(X)
will create an internal1klabel
for productions that would not otherwise have one. The implementation of overloading in ModuleToKORE requires implicitly2 that overloaded symbols have an internalklabel
associated with them. Under the previous implementation of overloading, it was not possible to generate an overloaded symbol without aklabel
, but the new implementation permits this.To fix the issue, we should add a check that overloaded subsorting productions have an associated
symbol(_)
attribute so that they have an internalklabel
during KORE generation.Footnotes
These internal
klabel
s are different to the attributeklabel(_)
. Roughly speaking, productions that have an internalklabel
will be generated as KORE symbols, and those that don't will not. For instance, subsorting productions will not usually be KORE symbols. ↩i.e. it crashes when this assumption is violated. ↩
The text was updated successfully, but these errors were encountered: