Ambiguity when putting annotation on toplevel term of builder result in testing language
module bla
language TemplateLangtest foo [[
]]
run bla to Foo(){Bar()}^^ This test specification is ambiguous. If the annotation is removed, it works fine.
In effect, it is currently impossible to expect a result that contains an annotation, because without specifying the annotation, you’ll get an unexpected result error if the result contains an annotation.
The error messages on the
run bla...line are:
- Fragment is ambiguous: either amb or []
- Not implemented: Stratego(ScopeDefault(Call(SVar(“Bar”),[])))
- Not implemented: Stratego(AnnoCong(EmptyTupleCong,StrategyCurly(Call(SVar(“Bar”), []))))
The AST looks like this:
testsuite(
[Name(“bla”), Language(“TemplateLang”)]
, [ Test(
" "
, description(“foo “)
, Input(”", QuotePart("\n \n"), Done(), "”){CompilationUnit([])}
, [ amb(
[ amb(
[ [ Run(
“bla”
, None()
, ATerm(
annotated(
appl(unquoted(“Foo”), [])
, default([appl(unquoted(“Bar”), [])])
)
)
)
]
, [ Run(“bla”, None(), ATerm(appl(unquoted(“Foo”), [])))
, Stratego(ScopeDefault(Call(SVar(“Bar”), [])))
]
]
)
, [ Run(“bla”, None(), ATerm(fun(unquoted(“Foo”))))
, Stratego(AnnoCong(EmptyTupleCong(), StrategyCurly(Call(SVar(“Bar”), []))))
]
]
)
]
)
]
)Spoofax version: 1.0.9.0-r24466
Submitted by Tobi Vollebregt on 2 March 2012 at 16:08