use of abs.frontend.ast.Model in project abstools by abstools.
the class FrontendTest method assertTypeErrors.
/**
* Check for and return the first error occurring in 'absCode', or null if
* none found. If EXPECT_WARNING is set, and EXPECT_TYPE_ERROR is not
* set, return the first warning instead. Produces a test failure if
* 'config' contains EXPECT_TYPE_ERROR but no error found. Produces a
* test failure if 'config' contains EXPECT_WARNING but no warning found.
* @param absCode - the test case source code
* @param config - flags
* @return
*/
protected SemanticCondition assertTypeErrors(String absCode, Config... config) {
Model m = assertParse(absCode, config);
String msg = "";
SemanticConditionList l = m.typeCheck();
if (l.containsErrors()) {
msg = l.getFirstError().getMsgWithHint(absCode);
} else if (l.containsWarnings() && isSet(EXPECT_WARNING, config)) {
msg = l.getFirstWarning().getMsgWithHint(absCode);
}
assertEquals(msg, isSet(EXPECT_TYPE_ERROR, config), l.containsErrors());
if (isSet(EXPECT_WARNING, config)) {
assertEquals(msg, isSet(EXPECT_WARNING, config), l.containsWarnings());
}
return l.containsErrors() ? l.getFirstError() : null;
}
use of abs.frontend.ast.Model in project abstools by abstools.
the class DuplicateCheckTest method interfaceDuplicates.
@Test
public void interfaceDuplicates() {
Model p = assertParseOk("interface I {} interface I {}");
assertEndsWith(p.typeCheck().getFirstError(), DUPLICATE_TYPE_DECL.withArgs("I", ""));
}
use of abs.frontend.ast.Model in project abstools by abstools.
the class DuplicateCheckTest method typeDuplicates2.
@Test
public void typeDuplicates2() {
Model p = assertParseOk("data D; data X; type D = X;");
assertEndsWith(p.typeCheck().getFirstError(), DUPLICATE_TYPE_DECL.withArgs("D", ""));
}
use of abs.frontend.ast.Model in project abstools by abstools.
the class DuplicateCheckTest method duplicateClasses.
@Test
public void duplicateClasses() {
Model p = assertParseOk("class C {} class C {}");
assertEndsWith(p.typeCheck().getFirstError(), DUPLICATE_CLASS_NAME.withArgs("C", ""));
}
use of abs.frontend.ast.Model in project abstools by abstools.
the class DuplicateCheckTest method duplicatePartialFunctions.
@Test
public void duplicatePartialFunctions() {
Model m = assertParseOk("data Test = Test; def Test zero()() = Test; def Test zero()() = Test;");
assertEndsWith(m.typeCheck().getFirstError(), DUPLICATE_PARTIAL_FUN_NAME.withArgs("zero", ""));
}
Aggregations