X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fmodules%2FTypeClass.java;h=8204a56998fb289acdcd352c498d194fc69bf614;hb=fad36d463b75c3a9944d875fc627c3533f6da74d;hp=49301b151d93e3fd7d54acc5adc7f1990d0a5beb;hpb=eecd74faded034bd067094b42bbac0d286d8d9fa;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeClass.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeClass.java old mode 100755 new mode 100644 index 49301b151..8204a5699 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeClass.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeClass.java @@ -1,86 +1,86 @@ -package org.simantics.scl.compiler.elaboration.modules; - -import java.util.ArrayList; - -import org.cojen.classfile.TypeDesc; -import org.simantics.scl.compiler.constants.Constant; -import org.simantics.scl.compiler.constants.JavaTypeClassSuper; -import org.simantics.scl.compiler.elaboration.fundeps.Fundep; -import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator; -import org.simantics.scl.compiler.types.TCon; -import org.simantics.scl.compiler.types.TPred; -import org.simantics.scl.compiler.types.TVar; -import org.simantics.scl.compiler.types.Type; -import org.simantics.scl.compiler.types.Types; -import org.simantics.scl.compiler.types.kinds.Kinds; - -import gnu.trove.map.hash.THashMap; - -public class TypeClass extends TypeConstructor { - public final TPred[] context; - public final TCon name; - public final String javaName; - public final TVar[] parameters; - public final Fundep[] fundeps; - public final TPred class_; - public final ArrayList methodNames = new ArrayList(); - public final THashMap methods = - new THashMap(); - public final Constant[] superGenerators; - public final TypeDesc typeDesc; - long locatable; - public String documentation; - - public TypeClass(long loc, TPred[] context, TCon name, String javaName, TVar[] parameters, - Fundep[] fundeps) { - super(Kinds.STAR); - this.locatable = loc; - this.context = context; - this.name = name; - this.javaName = javaName; - this.parameters = parameters; - this.fundeps = fundeps; - //this.typeDesc = TypeDesc.forClass(new JavaNamingPolicy(name.module).getTypeClassInterfaceName(name)); - this.typeDesc = TypeDesc.forClass(javaName); - this.class_ = Types.pred(name, parameters); - this.superGenerators = new Constant[context.length]; - for(int i=0;i0) - b.append(", "); - context[i].toString(tuc); - b.append(context[i]); - } - b.append(") => "); - b.append(class_.toString(tuc)); - b.append(" where\n"); - methods.forEachValue(new TObjectProcedure() { - @Override - public boolean execute(TypeClassMethod method) { - b.append(" "); - b.append(method.name); - b.append(" :: "); - b.append(method.baseType.toString(tuc)); - b.append('\n'); - return true; - } - }); - } - */ - - @Override - public TypeDesc construct(JavaTypeTranslator translator, Type[] parameters) { - return typeDesc; - } - - public void setDocumentation(String documentation) { - this.documentation = documentation; - } -} +package org.simantics.scl.compiler.elaboration.modules; + +import java.util.ArrayList; + +import org.cojen.classfile.TypeDesc; +import org.simantics.scl.compiler.constants.Constant; +import org.simantics.scl.compiler.constants.JavaTypeClassSuper; +import org.simantics.scl.compiler.elaboration.fundeps.Fundep; +import org.simantics.scl.compiler.internal.codegen.types.JavaTypeTranslator; +import org.simantics.scl.compiler.types.TCon; +import org.simantics.scl.compiler.types.TPred; +import org.simantics.scl.compiler.types.TVar; +import org.simantics.scl.compiler.types.Type; +import org.simantics.scl.compiler.types.Types; +import org.simantics.scl.compiler.types.kinds.Kinds; + +import gnu.trove.map.hash.THashMap; + +public class TypeClass extends TypeConstructor { + public final TPred[] context; + public final TCon name; + public final String javaName; + public final TVar[] parameters; + public final Fundep[] fundeps; + public final TPred class_; + public final ArrayList methodNames = new ArrayList(); + public final THashMap methods = + new THashMap(); + public final Constant[] superGenerators; + public final TypeDesc typeDesc; + long locatable; + public String documentation; + + public TypeClass(long loc, TPred[] context, TCon name, String javaName, TVar[] parameters, + Fundep[] fundeps) { + super(Kinds.STAR); + this.locatable = loc; + this.context = context; + this.name = name; + this.javaName = javaName; + this.parameters = parameters; + this.fundeps = fundeps; + //this.typeDesc = TypeDesc.forClass(new JavaNamingPolicy(name.module).getTypeClassInterfaceName(name)); + this.typeDesc = TypeDesc.forClass(javaName); + this.class_ = Types.pred(name, parameters); + this.superGenerators = new Constant[context.length]; + for(int i=0;i0) + b.append(", "); + context[i].toString(tuc); + b.append(context[i]); + } + b.append(") => "); + b.append(class_.toString(tuc)); + b.append(" where\n"); + methods.forEachValue(new TObjectProcedure() { + @Override + public boolean execute(TypeClassMethod method) { + b.append(" "); + b.append(method.name); + b.append(" :: "); + b.append(method.baseType.toString(tuc)); + b.append('\n'); + return true; + } + }); + } + */ + + @Override + public TypeDesc construct(JavaTypeTranslator translator, Type[] parameters) { + return typeDesc; + } + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } +}