§2.3.5.(d) Incompatible redefinition of a role hierarchy
Consider a team T1
with a method m
with declared lifting regarding role R
,
where no lifting problems are detected.
Consider next a sub-team T2
which modifies the hierarchy of role R
such that lifting
to T2.R
is problematic due to a binding ambiguity.
In this case clients invoking T1.m()
could face the situation at runtime that an instance
of T2
is used that unexpectedly fails to lift to its role R
.
Here, the compiler signals a specific error against T2
alerting of the incompatible change.