import java.util.function.Consumer;
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.TypeConstructor;
+import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor;
import org.simantics.scl.compiler.elaboration.relations.SCLEntityType;
import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
import org.simantics.scl.compiler.elaboration.rules.MappingRelation;
}
@Override
- public TypeConstructor getTypeConstructor(String name)
+ public TypeDescriptor getTypeDescriptor(String name)
throws AmbiguousNameException {
- TypeConstructor result = null, temp;
+ TypeDescriptor result = null, temp;
Module resultModule = null;
ArrayList<String> conflictingModules = null;
for(ModuleImport moduleImport : moduleImports) {
Module module = moduleImport.module;
- temp = module.getTypeConstructor(name);
+ temp = module.getTypeDescriptor(name);
if(temp != null) {
if(result != null) {
if(conflictingModules == null) {
return result;
}
- @Override
- public TypeAlias getTypeAlias(String name) throws AmbiguousNameException {
- TypeAlias result = null, temp;
- Module resultModule = null;
- ArrayList<String> conflictingModules = null;
- for(ModuleImport moduleImport : moduleImports) {
- Module module = moduleImport.module;
- temp = module.getTypeAlias(name);
- if(temp != null) {
- if(result != null) {
- if(conflictingModules == null) {
- conflictingModules = new ArrayList<String>(2);
- conflictingModules.add(resultModule.getName());
- }
- conflictingModules.add(module.getName());
- }
- else {
- result = temp;
- resultModule = module;
- }
- }
- }
- if(conflictingModules != null)
- throw new AmbiguousNameException(conflictingModules, name);
- return result;
- }
-
@Override
public MappingRelation getMappingRelation(String name) throws AmbiguousNameException {
MappingRelation result = null, temp;