-
Feature Request
-
Resolution: Done
-
Critical
-
5.5.0.Final
-
None
-
None
Consider the following scenario:
declare trait A
sub : int
end
declare X end
declare trait Foo
fld : A
end
declare Bar
@Traitable( logic = true ) // new mode
fld : X
end
If an instance b of Bar is traited with Foo, the value of its field "fld"
should in turn be traited with A.
Truth maintenance and transparent casting are required.
The goal is to write rules such as:
when Foo( fld isA A, fld.sub == 0, .... ) then ..