12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667openCommonopenAst_javamoduleVis=Visitor_javaopenOUnit(*****************************************************************************)(* Unit tests *)(*****************************************************************************)letunittest="parsing_java">:::["regression files">::(fun()->letdir=Filename.concatConfig_pfff.path"/tests/java/parsing"inletfiles=Common2.glob(spf"%s/*.java"dir)infiles|>List.iter(funfile->trylet_=Parse_java.parsefilein()withParse_info.Parsing_error_->assert_failure(spf"it should correctly parse %s"file)));"basic_expr_visitor">::(fun()->letcount=ref0inletvis=Vis.mk_visitor{Vis.default_visitorwithVis.kexpr=(fun(k,_)e->matchewith|NewClass_->incrcount;ke|_->ke)}inletthecode="
class TestClass {
public static final void main(string[] args) {
Object x = new Runnable() {
public void run() {
Object y = new Runnable() {
public void run() {
System.out.println(\"magic\");
}
};
}
};
}
}"inletast=Common2.with_tmp_file~str:thecode~ext:"java"Parse_java.parse_programinvis(AProgramast);OUnit.assert_equal~msg:"Expecting two anonymous class definitions"2!count;);]