Search in sources :

Example 21 with Type

use of org.abs_models.frontend.typechecker.Type in project abstools by abstools.

the class TypingTest method functionTypeArgs4.

@Test
public void functionTypeArgs4() {
    Model m = assertParse(" data Foo<A> = Bar(A,Bool); " + "def Bool f<A>(Foo<A> o) = case o { Bar(a,b) => b; } ;");
    ParametricFunctionDecl d = getLastParametricFunctionDecl(m);
    Type type = ((ExpFunctionDef) d.getFunctionDef()).getRhs().getType();
    assertEquals(m.getBoolType(), type);
}
Also used : ParametricFunctionDecl(org.abs_models.frontend.ast.ParametricFunctionDecl) DataTypeType(org.abs_models.frontend.typechecker.DataTypeType) Type(org.abs_models.frontend.typechecker.Type) UnionType(org.abs_models.frontend.typechecker.UnionType) Model(org.abs_models.frontend.ast.Model) FrontendTest(org.abs_models.frontend.FrontendTest) Test(org.junit.Test)

Aggregations

Type (org.abs_models.frontend.typechecker.Type)21 DataTypeType (org.abs_models.frontend.typechecker.DataTypeType)11 BoundedType (org.abs_models.frontend.typechecker.BoundedType)7 TypeParameter (org.abs_models.frontend.typechecker.TypeParameter)4 PureExp (org.abs_models.frontend.ast.PureExp)3 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 FrontendTest (org.abs_models.frontend.FrontendTest)2 TypeError (org.abs_models.frontend.analyser.TypeError)2 ClassDecl (org.abs_models.frontend.ast.ClassDecl)2 MethodSig (org.abs_models.frontend.ast.MethodSig)2 Model (org.abs_models.frontend.ast.Model)2 Stmt (org.abs_models.frontend.ast.Stmt)2 VarDeclStmt (org.abs_models.frontend.ast.VarDeclStmt)2 InterfaceType (org.abs_models.frontend.typechecker.InterfaceType)2 UnionType (org.abs_models.frontend.typechecker.UnionType)2 Test (org.junit.Test)2 Constraint (com.gzoumix.semisolver.constraint.Constraint)1 LinkedList (java.util.LinkedList)1 ABSBool (org.abs_models.backend.java.lib.types.ABSBool)1