package unify; import de.dhbwstuttgart.syntaxtree.ClassOrInterface; import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory; import de.dhbwstuttgart.typeinference.unify.TypeUnify; import de.dhbwstuttgart.typeinference.unify.model.*; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Created by janulrich on 13.10.17. */ public class Test { @org.junit.Test public void test() throws ClassNotFoundException { List availableClasses = new ArrayList<>(); availableClasses.add(ASTFactory.createClass(Class.forName("java.util.List"))); availableClasses.add(ASTFactory.createClass(Class.forName("java.util.AbstractList"))); FiniteClosure fc = UnifyTypeFactory.generateFC(availableClasses); TypeUnify typeUnify = new TypeUnify(); Set constraints = new HashSet<>(); System.out.println(fc); constraints.add(new UnifyPair(new PlaceholderType("tpha"), new ReferenceType("java.util.AbstractList", new TypeParams(new PlaceholderType("b"))), PairOperator.SMALLERDOT)); //constraints.add(new UnifyPair(new PlaceholderType("tpha"), new ReferenceType("java.util.AbstractList", new TypeParams( // new ReferenceType("java.util.AbstractList",new TypeParams(new ReferenceType("java.lang.Object", new TypeParams()))))), PairOperator.SMALLERDOT)); System.out.println(typeUnify.unify(constraints, fc)); } }