Source code: mlsub/typing/lowlevel/LowlevelIncompatibleClash.java
1 package mlsub.typing.lowlevel;
2
3 /**
4 * Thrown when the constraint implies that a and b have a common subtype or
5 * supertype, but a and b are rigid and this is not true
6 *
7 * @version $Revision: 1.1 $, $Date: 2000/06/14 13:32:51 $
8 * @author Alexandre Frey
9 **/
10 public class LowlevelIncompatibleClash extends LowlevelUnsatisfiable {
11 public final static int NO_COMMON_SUBTYPE = 1;
12 public final static int NO_COMMON_SUPERTYPE = 2;
13 private int what;
14 private int a;
15 private int b;
16 private int z;
17 LowlevelIncompatibleClash(int what, int a, int b, int z) {
18 this.what = what;
19 this.a = a;
20 this.b = b;
21 this.z = z;
22 }
23 public int getReason() {
24 return what;
25 }
26 public int[] getRigidPair() {
27 return new int[] { a, b };
28 }
29 public int getVar() {
30 return z;
31 }
32
33 public String getMessage()
34 {
35 return "Lowlevel incompatible clash: "+
36 a+" and "+b+" are not compatible";
37 }
38 }