Meta (list) variables are not imploded properly
The following tests from stratego-sglr-tests fail:
implode-tests =
where(
“ConcreteSyntax.tbl”; open-parse-table => tbl
)
; set-default-sglr-config; apply-test(!"Implode a meta list variable (sep)." , parse-string-pt(|tbl) ; debug ; implode-asfix , !"|[ f(e*) ]|" , !ToTerm(Call("f", meta-listvar("e*"))) ) ; apply-test(!"Implode a meta list variable." , parse-string(|tbl) , !"|[ [ e* ] ]|" , !ToTerm(List(meta-listvar("e*"))) ) ; apply-test(!"Implode a meta variable." , parse-string(|tbl) , !"|[ e ]|" , !ToTerm(meta-var("e")) ) ; where(<close-parse-table> tbl)
Looks like an imploder issue, as implode-asfix implodes properly.
Submitted by Rob Vermaas on 13 May 2011 at 12:01
Issue Log
So is this a blocking bug? Could you prioritize your bugs w.r.t. relevance to bootstrapping? :)
It does not block the bootstrap itself, just the running of the test-cases. I would like to have all tests fail before I move to Atlanta ;-)
Partially fixed in
r22992
. It seems the original asfix-implode also does something weird where it removes the outer list when ameta-list-var
is inside a list. Not sure if that can be accurately reproduced, but I’m hoping the compiler handles that.
Tests still fail (http://hydra.nixos.org/build/1107236/nixlog/3/raw):
[java] Implode a meta list variable (sep). [java] result not equal : ToTerm(Call("f",[meta-listvar("e*")])) [java] expected : ToTerm(Call("f",meta-listvar("e*"))) [java] Implode a meta list variable. [java] result not equal : ToTerm(List([meta-listvar("e*")])) [java] expected : ToTerm(List(meta-listvar("e*"))) [java] Implode a meta variable. [java] result not equal : ToTerm(amb([Var("e"),meta-var("e")])) [java] expected : ToTerm(meta-var("e"))
Log in to post comments