import org.simantics.scl.compiler.elaboration.query.compilation.EnforcingContext;
import org.simantics.scl.compiler.elaboration.query.compilation.QueryCompilationContext;
import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
+import org.simantics.scl.compiler.types.TPred;
import org.simantics.scl.compiler.types.TVar;
import org.simantics.scl.compiler.types.Type;
TVar[] getTypeVariables();
Type[] getParameterTypes();
+ default TPred[] getTypeConstraints() {
+ return TPred.EMPTY_ARRAY;
+ }
int getPhase();
double getSelectivity(int boundVariables);
long location,
int boundMask,
Variable[] variables,
- Expression[] expressions);
+ Expression[] expressions,
+ Expression[] typeConstraintEvidenceParameters);
void generateEnforce(
PlanContext context,
CodeWriter w,
long location,
- Expression[] parameters);
+ Expression[] parameters,
+ Expression[] typeConstraintEvidenceParameters);
}