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: the transition attribute does not exist (typo)
Then: the interpreter still calls the log() service, leading the exception to be printed twice:
Why does it happen?
log() is called on the result of self.transiton which is... the no attribute called transiton error itself! The issue seems to come from the NotifyingEvaluationServices which, in case of error, returns a "placeholder" holding the exception:
I tried to broadcast the exception instead but that resulted in the exception never being caught and crashing the whole interpreter. We have to be a bit more subtle here.
The text was updated successfully, but these errors were encountered:
…s right operand (#126)
Because:
- an exception was thrown at runtime when concatenating two collections because the interpreter
was excepting a scalar (fix#120)
Signed-off-by: Emmanuel Chebbi <emmanuel.chebbi@outlook.fr>
concatenate collections with static attributes
Signed-off-by: Emmanuel Chebbi <emmanuel.chebbi@outlook.fr>
az
Expected behavior
A statement is not executed if one of its sub-expression is invalid.
Current behavior
The statement is executed, eventually leading to unexpected results / subtle errors.
Reproducible example
Given:
When: the
transition
attribute does not exist (typo)Then: the interpreter still calls the
log()
service, leading the exception to be printed twice:Why does it happen?
log()
is called on the result ofself.transiton
which is... the no attribute called transiton error itself! The issue seems to come from theNotifyingEvaluationServices
which, in case of error, returns a "placeholder" holding the exception:ale-lang/plugins/org.eclipse.emf.ecoretools.ale.core/src/org/eclipse/emf/ecoretools/ale/core/interpreter/services/NotifyingEvaluationServices.java
Lines 88 to 96 in 9bf186e
I tried to broadcast the exception instead but that resulted in the exception never being caught and crashing the whole interpreter. We have to be a bit more subtle here.
The text was updated successfully, but these errors were encountered: