X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fmodule%2FConcreteModule.java;h=31ef0dc5a0cb9863874d042858aec59d451adadd;hp=e52420925ea4763b332361633ad05a8565f5a44e;hb=c07a8f3914123e9b75a11290994a8b78bd3f01f7;hpb=3216affb4ed0e73a5601be223638f4f1a41fb26a diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java index e52420925..31ef0dc5a 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/ConcreteModule.java @@ -5,7 +5,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.concurrent.SynchronousQueue; import java.util.function.Consumer; import org.simantics.scl.compiler.common.names.Name; @@ -13,6 +12,7 @@ import org.simantics.scl.compiler.constants.Constant; import org.simantics.scl.compiler.elaboration.chr.CHRRuleset; import org.simantics.scl.compiler.elaboration.modules.Documentation; import org.simantics.scl.compiler.elaboration.modules.SCLValue; +import org.simantics.scl.compiler.elaboration.modules.TypeAlias; import org.simantics.scl.compiler.elaboration.modules.TypeClass; import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance; import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor; @@ -23,8 +23,12 @@ import org.simantics.scl.compiler.elaboration.rules.TransformationRule; import org.simantics.scl.compiler.environment.filter.NamespaceFilter; import org.simantics.scl.compiler.errors.CompilationError; import org.simantics.scl.compiler.internal.codegen.effects.EffectConstructor; +import org.simantics.scl.compiler.module.debug.ModuleDebugInfo; import org.simantics.scl.compiler.top.ModuleInitializer; import org.simantics.scl.compiler.types.TCon; +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.runtime.profiling.BranchPoint; import gnu.trove.map.hash.THashMap; @@ -55,6 +59,8 @@ public class ConcreteModule implements Module { ModuleInitializer moduleInitializer; protected Documentation documentation; + + public ModuleDebugInfo moduleDebugInfo; public ConcreteModule(String moduleName) { this.moduleName = moduleName; @@ -77,6 +83,10 @@ public class ConcreteModule implements Module { return effectConstructors.put(name, effectConstructor) != null; } + public void addTypeAlias(String name, TVar[] parameters, Type body) { + typeDescriptors.put(name, new TypeAlias(Types.con(moduleName, name), parameters, body)); + } + public boolean addTypeClass(String name, TypeClass typeClass) { return typeClasses.put(name, typeClass) != null; } @@ -270,6 +280,11 @@ public class ConcreteModule implements Module { consumer.accept(value); }); } + + @Override + public List getValueNames() { + return new ArrayList(values.keySet()); + } public Collection getRelations() { return relations.values(); @@ -337,4 +352,9 @@ public class ConcreteModule implements Module { public void setDeprecation(String deprecation) { this.deprecation = deprecation; } + + @Override + public ModuleDebugInfo getModuleDebugInfo() { + return moduleDebugInfo; + } }