Search in sources :

Example 11 with ReturnStmt

use of org.abs_models.frontend.ast.ReturnStmt in project abstools by abstools.

the class VarResolutionTest method testFieldUse.

@Test
public void testFieldUse() {
    Model m = assertParse(" class C { Bool f; Bool m() { return this.f; } }");
    ClassDecl d = (ClassDecl) getTestModule(m).lookup(new KindedName(KindedName.Kind.CLASS, "UnitTest.C"));
    FieldDecl f = d.getField(0);
    ReturnStmt s = (ReturnStmt) d.getMethod(0).getBlock().getStmt(0);
    assertEquals(f, ((FieldUse) s.getRetExp()).getDecl());
}
Also used : VarOrFieldDecl(org.abs_models.frontend.ast.VarOrFieldDecl) FieldDecl(org.abs_models.frontend.ast.FieldDecl) ClassDecl(org.abs_models.frontend.ast.ClassDecl) Model(org.abs_models.frontend.ast.Model) KindedName(org.abs_models.frontend.typechecker.KindedName) ReturnStmt(org.abs_models.frontend.ast.ReturnStmt) FrontendTest(org.abs_models.frontend.FrontendTest) Test(org.junit.Test)

Aggregations

ReturnStmt (org.abs_models.frontend.ast.ReturnStmt)11 ClassDecl (org.abs_models.frontend.ast.ClassDecl)10 Test (org.junit.Test)10 FrontendTest (org.abs_models.frontend.FrontendTest)9 Model (org.abs_models.frontend.ast.Model)9 KindedName (org.abs_models.frontend.typechecker.KindedName)6 MethodImpl (org.abs_models.frontend.ast.MethodImpl)4 ParamDecl (org.abs_models.frontend.ast.ParamDecl)4 ABSTest (org.abs_models.ABSTest)3 ModuleDecl (org.abs_models.frontend.ast.ModuleDecl)3 VarOrFieldUse (org.abs_models.frontend.ast.VarOrFieldUse)3 FieldDecl (org.abs_models.frontend.ast.FieldDecl)2 MethodSig (org.abs_models.frontend.ast.MethodSig)2 Stmt (org.abs_models.frontend.ast.Stmt)2 VarUse (org.abs_models.frontend.ast.VarUse)2 DeltaDecl (org.abs_models.frontend.ast.DeltaDecl)1 Exp (org.abs_models.frontend.ast.Exp)1 FieldUse (org.abs_models.frontend.ast.FieldUse)1 VarDeclStmt (org.abs_models.frontend.ast.VarDeclStmt)1 VarOrFieldDecl (org.abs_models.frontend.ast.VarOrFieldDecl)1