StrategoTerm assertion
Hit this failing assertion in StrategoTerm.java line 31, Spoofax r23317, Eclipse 3.7:
protected StrategoTerm(IStrategoList annotations, int storageType) {
assert annotations == null || !annotations.isEmpty() || annotations == TermFactory.EMPTY_LIST;
if (annotations != TermFactory.EMPTY_LIST)
this.annotations = annotations;
this.storageType = storageType;
}Stack:
StrategoPlaceholder(StrategoTerm).(IStrategoList, int) line: 31
StrategoPlaceholder(StrategoAppl).(IStrategoConstructor, IStrategoTerm[], IStrategoList, int) line: 25
StrategoPlaceholder.(IStrategoConstructor, IStrategoTerm, IStrategoList, int) line: 17
TermFactory.makePlaceholder(IStrategoTerm) line: 225
StringTermReader.parsePlaceholder(PushbackStringIterator) line: 170
StringTermReader.parseFromString(PushbackStringIterator) line: 47
StringTermReader.parseFromString(String) line: 37
TermFactory(AbstractTermFactory).parseFromString(String) line: 123
AstAnnoImploder.implode(IStrategoTerm, String) line: 59
TreeBuilder.createAstNonTerminal(LabelInfo, IToken, List) line: 463
TreeBuilder.createNodeOrInjection(LabelInfo, IToken, List) line: 409
TreeBuilder.buildTreeNode(ParseNode) line: 258
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
ParseNode.toTreeTopdown(TopdownTreeBuilder) line: 217
TreeBuilder.buildTreeNode(ParseNode) line: 234
TreeBuilder(TopdownTreeBuilder).buildTree(AbstractParseNode) line: 28
TreeBuilder.buildTree(AbstractParseNode) line: 159
Disambiguator.yieldTree(AbstractParseNode) line: 287
Disambiguator.yieldTreeTop(AbstractParseNode) line: 299
Disambiguator.applyFilters(SGLR, AbstractParseNode, String, int) line: 256
SGLR(SGLR).sglrParse(String) line: 348
SGLR(SGLR).parse(String, String, String) line: 297
SGLR(SGLR).parse(String, String, String, boolean, int) line: 278
JSGLRI.doParse(String, String) line: 174
JSGLRI(AbstractSGLRI).parse(String, String) line: 106
SGLRParseController.doParse(String, String) line: 352
SGLRParseController.parse(String, IProgressMonitor) line: 287
SGLRParseController.parse(String, IProgressMonitor) line: 1
DynamicParseController.parse(String, IProgressMonitor) line: 169
ParserScheduler.run(IProgressMonitor) line: 86
Worker.run() line: 54It is completely reproducable for me.
Submitted by Tobi Vollebregt on 12 September 2011 at 00:52
Issue Log
I think Maartje ran into this one too, but perhaps didn’t commit the fix? The Placeholders were violating this contract.
Is probably fixed now.
Nice, I’ll try it this evening.
Log in to post comments