package org.simantics.scl.compiler.internal.codegen.utils;
-import gnu.trove.map.hash.TObjectIntHashMap;
-import gnu.trove.procedure.TObjectIntProcedure;
-import gnu.trove.set.hash.THashSet;
-
import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
import org.simantics.scl.compiler.constants.Constant;
import org.simantics.scl.compiler.constants.SCLConstant;
import org.simantics.scl.compiler.types.Type;
import org.simantics.scl.compiler.types.Types;
import org.simantics.scl.compiler.types.util.TypeUnparsingContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import gnu.trove.map.hash.TObjectIntHashMap;
+import gnu.trove.procedure.TObjectIntProcedure;
+import gnu.trove.set.hash.THashSet;
public class SSAValidationContext {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SSAValidationContext.class);
+
public THashSet<BoundVar> validBoundVariables = new THashSet<BoundVar>();
public THashSet<Cont> validContinuations = new THashSet<Cont>();
public THashSet<TVar> validTypeVariables = new THashSet<TVar>();
public void assertEquals(Object loc, Type a, Type b) {
if(!Types.equals(a, b)) {
TypeUnparsingContext tuc = new TypeUnparsingContext();
- System.err.println(a.toString(tuc) + " != " + b.toString(tuc));
+ String message = a.toString(tuc) + " != " + b.toString(tuc);
+ LOGGER.error(message);
setErrorMarker(loc);
- throw new InternalCompilerError();
+ throw new InternalCompilerError(message);
}
}
public void assertEqualsEffect(Object loc, Type a, Type b) {
if(!Types.equalsEffect(a, b)) {
TypeUnparsingContext tuc = new TypeUnparsingContext();
- System.err.println(a.toString(tuc) + " != " + b.toString(tuc));
+ String message = a.toString(tuc) + " != " + b.toString(tuc);
+ LOGGER.error(message);
setErrorMarker(loc);
- throw new InternalCompilerError();
+ throw new InternalCompilerError(message);
}
}
int realCount = val.occurrenceCount();
if(realCount != count) {
- System.out.println(val + ": " + realCount + " != " + count);
- invalidReferenceCounts = true;
+ LOGGER.warn(val + ": " + realCount + " != " + count);
+ invalidReferenceCounts = true;
}
return true;
}