#### §2.3.4.(c) Actual ambiguity

At runtime actual ambiguity may occur if for the dynamic type of a base to be lifted the conditions of (b) above hold accordingly. Actual ambiguity is only possible in cases reported by the compiler as potential or definite ambiguity.

##### Effect:

An actual ambiguity is reported at runtime by throwing a `org.objectteams.LiftingFailedException`.

##### Example code (Actual Ambiguity):

1

    import org.objectteams.LiftingFailedException;

2

    team class MyTeam {

3

      public class SuperRole playedBy MyBase {...}

4

      public class SubRoleA extends SuperRole playedBy SubBase {...}

5

      public class SubRoleB extends SuperRole playedBy SubBase {...}

6

7

      public void useSuperRole(MyBase as SuperRole r) throws LiftingFailedException {...}

8

    }

9

    // plus these calls:

10

    MyTeam mt = new MyTeam();

11

    mt.useSuperRole(new SubBase()); // will throw a LiftingFailedException