package checkers.oigj;
/**
* OIGJ is a Java-extension language that expresses ownership and immutability
* constraints.
*
* The language has the following simple language rules:
*
* <ol>
* <li><b>Ownership nesting</b>: The owner parameter of a type must
* be lower or equal in the dominator tree compared to all other owner
* parameters inside that type.</li>
*
* <li><b>FieldAssignment</b>: Field assignment {@code o.f = ...} is legal
* iff:
* <ol type="i">
* <li>{@code I(o) <= AssignsFields} or {@code f} is annotated as
* {@code @Assignable}, and</li>
* <li>{@code o = this} or the type of {@code f} does not contain the
* owner {@code Dominator} or {@code Modifier}.
* </ol>
* </ol>
*
*/