§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.