1 package org.simantics.scl.compiler.internal.elaboration.constraints2;
3 import org.simantics.scl.compiler.constants.Constant;
4 import org.simantics.scl.compiler.types.Type;
5 import org.simantics.scl.compiler.types.util.TypeUnparsingContext;
7 class ConstraintResolution {
8 public static final int INSTANCE_PRIORITY = 1;
9 public static final int SUPERCLASS_PRIORITY = 2;
10 public static final int GIVEN_PRIORITY = 3;
12 public final Constant function;
13 public final Type[] typeParameters;
14 public final ConstraintHandle[] parameters;
15 public final int priority;
17 public ConstraintResolution(Constant function, Type[] typeParameters,
18 ConstraintHandle[] parameters, int priority) {
19 this.function = function;
20 this.typeParameters = typeParameters;
21 this.parameters = parameters;
22 this.priority = priority;
25 public String toString(TypeUnparsingContext tuc) {
26 StringBuilder b = new StringBuilder();
28 for(Type typeParameter : typeParameters)
29 b.append(" <").append(typeParameter.toString(tuc)).append('>');
30 for(ConstraintHandle parameter : parameters)
31 b.append(" (").append(parameter.constraint.toString(tuc)).append(')');