-package org.simantics.scl.compiler.internal.deriving;\r
-\r
-import org.simantics.scl.compiler.internal.parsing.types.TApplyAst;\r
-import org.simantics.scl.compiler.internal.parsing.types.TTupleAst;\r
-import org.simantics.scl.compiler.internal.parsing.types.TVarAst;\r
-import org.simantics.scl.compiler.internal.parsing.types.TypeAst;\r
-\r
-class DerivingUtils {\r
- \r
- static TVarAst getHeadType(TypeAst typeAst) {\r
- while(true) {\r
- if(typeAst instanceof TApplyAst)\r
- typeAst = ((TApplyAst)typeAst).function;\r
- else if(typeAst instanceof TVarAst)\r
- return (TVarAst)typeAst;\r
- else if(typeAst instanceof TTupleAst) {\r
- TTupleAst tuple = (TTupleAst)typeAst;\r
- if(tuple.components.length == 1)\r
- typeAst = tuple.components[0];\r
- else\r
- return null;\r
- }\r
- else\r
- return null;\r
- }\r
- }\r
- \r
-}\r
+package org.simantics.scl.compiler.internal.deriving;
+
+import org.simantics.scl.compiler.internal.parsing.types.TApplyAst;
+import org.simantics.scl.compiler.internal.parsing.types.TTupleAst;
+import org.simantics.scl.compiler.internal.parsing.types.TVarAst;
+import org.simantics.scl.compiler.internal.parsing.types.TypeAst;
+
+class DerivingUtils {
+
+ static TVarAst getHeadType(TypeAst typeAst) {
+ while(true) {
+ if(typeAst instanceof TApplyAst)
+ typeAst = ((TApplyAst)typeAst).function;
+ else if(typeAst instanceof TVarAst)
+ return (TVarAst)typeAst;
+ else if(typeAst instanceof TTupleAst) {
+ TTupleAst tuple = (TTupleAst)typeAst;
+ if(tuple.components.length == 1)
+ typeAst = tuple.components[0];
+ else
+ return null;
+ }
+ else
+ return null;
+ }
+ }
+
+}