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
Before the fix, a static operation with a "per" guard in a "sync" section would
fail - internally, the implementation was assuming guarded operations always
have a "self", but this is not the case for static operations. The result was a
null pointer exception.
Static operation guards now work, with caveats. A guard can refer to #act, #fin
and #req of other static operations (the counters referring to how many times
the operation has been called universally), but if a static operation guard
refers to the #act (etc) of a non-static operation, this results in a runtime
error (an illegal history operator). The problem is that it is not certain which
object instance counters are being referred to in this case since there is no
"self" from the operation's context.
The fix should be in 2.0.2.
The text was updated successfully, but these errors were encountered:
This change follows the recent fix to enable sync guards on static operations. The fix prevents non-static instance variables from being referenced from the sync clause of a static operation, and it also prevents sync clauses from being declared on overloaded operations that include a mix of static and non-statics.
A new type checking error has been added:
3323, "Overloaded operation cannot mix static and non-static"
Before the fix, a static operation with a "per" guard in a "sync" section would
fail - internally, the implementation was assuming guarded operations always
have a "self", but this is not the case for static operations. The result was a
null pointer exception.
Static operation guards now work, with caveats. A guard can refer to #act, #fin
and #req of other static operations (the counters referring to how many times
the operation has been called universally), but if a static operation guard
refers to the #act (etc) of a non-static operation, this results in a runtime
error (an illegal history operator). The problem is that it is not certain which
object instance counters are being referred to in this case since there is no
"self" from the operation's context.
The fix should be in 2.0.2.
The text was updated successfully, but these errors were encountered: