]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/DeclarationClassification.java
Ignore instance definitions for Eq and Hashable
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / compilation / DeclarationClassification.java
index 6f82720c4675b805f997e1976695571be3ad6951..6c2befb5cdb15c2e72d171cfbc88c0c3663b6972 100644 (file)
@@ -34,10 +34,14 @@ import org.simantics.scl.compiler.internal.parsing.translation.ProcessedDInstanc
 import org.simantics.scl.compiler.internal.parsing.translation.RelationRepository;
 import org.simantics.scl.compiler.internal.parsing.translation.ValueRepository;
 import org.simantics.scl.compiler.module.ImportDeclaration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import gnu.trove.map.hash.THashMap;
 
 public class DeclarationClassification {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DeclarationClassification.class);
+    
     ArrayList<ImportDeclaration> importsAst = new ArrayList<ImportDeclaration>();
     ArrayList<DDataAst> dataTypesAst = new ArrayList<DDataAst>();
     ArrayList<DTypeAst> typeAliasesAst = new ArrayList<DTypeAst>();
@@ -236,6 +240,10 @@ public class DeclarationClassification {
             errorLog.log(declaration.location, "Annotations not supported.");
             currentAnnotations = new ArrayList<DAnnotationAst>(2);
         }
+        if(declaration.name.name.equals("Eq") || declaration.name.name.equals("Hashable")) {
+            LOGGER.warn("Skipped instance definition for " + declaration.name + " for " + declaration.types[0]);
+            return;
+        }
         instancesAst.add(new ProcessedDInstanceAst(
                 declaration,
                 valueDefs));
@@ -246,6 +254,10 @@ public class DeclarationClassification {
             errorLog.log(declaration.location, "Annotations not supported.");
             currentAnnotations = new ArrayList<DAnnotationAst>(2);
         }
+        if(declaration.name.name.equals("Eq") || declaration.name.name.equals("Hashable")) {
+            LOGGER.warn("Skipped instance definition for " + declaration.name + " for " + declaration.types[0]);
+            return;
+        }
         derivingInstancesAst.add(declaration);
     }