]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/kinds/KArrow.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / types / kinds / KArrow.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/kinds/KArrow.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/kinds/KArrow.java
new file mode 100644 (file)
index 0000000..b94739d
--- /dev/null
@@ -0,0 +1,28 @@
+package org.simantics.scl.compiler.types.kinds;
+
+import org.simantics.scl.compiler.types.util.TypeUnparsingContext;
+
+/**
+ * KArrow represents a type kind that has a domain kind and a range kind. 
+ */
+public class KArrow extends Kind {
+    public final Kind domain;
+    public final Kind range;
+    
+    KArrow(Kind domain, Kind range) {
+        this.domain = domain;
+        this.range = range;
+    }
+
+    @Override
+    protected void toString(TypeUnparsingContext tuc, StringBuilder b) {
+        domain.toStringPar(tuc, b);
+        b.append(" -> ");
+        range.toString(tuc, b);
+    }
+
+    @Override
+    public boolean contains(KMetaVar var) {
+        return domain.contains(var) || range.contains(var);
+    }
+}