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: 54

It is completely reproducable for me.

Submitted by Tobi Vollebregt on 12 September 2011 at 00:52

On 12 September 2011 at 09:20 Lennart Kats commented:

I think Maartje ran into this one too, but perhaps didn’t commit the fix? The Placeholders were violating this contract.


On 12 September 2011 at 12:23 Maartje commented:

Is probably fixed now.


On 12 September 2011 at 12:49 Tobi Vollebregt commented:

Nice, I’ll try it this evening.


On 12 September 2011 at 12:56 Lennart Kats tagged maartje

On 12 September 2011 at 12:58 Lennart Kats tagged runtime

On 12 September 2011 at 12:58 Lennart Kats removed tag maartje

On 12 September 2011 at 12:58 Lennart Kats tagged @maartje

On 12 September 2011 at 12:58 Lennart Kats closed this issue.

On 22 December 2011 at 16:56 Lennart Kats tagged 1.0

Log in to post comments