Steps to reproduce

1) create a new entity project

2) add this-expressions

Property.Property = <<ID> : <Type> = <Exp>>
Exp.This = <this>

3) add def sites for this

Entity(x, _) :
	defines Entity x of type Type(x)
	scopes Property
	implicitly defines This This() of type Type(x)
	scopes This

4) add use site

This() :
	refers to This This()

Up until 3 everything worked fine. Adding 4 makes analysis fail with the following stacktrace.

Internal error evaluating editor-analyze (InterpreterException; see error log)
rewriting failed, trace:

editor_analyze_0_0
analysis_single_default_3_1
analyze_one_1_3
analyze_collect_1_2
measure_time_2_1
measure_time_2_0
n_44712
measure_time_2_1
measure_time_2_0
n_44712
nabl_collect_0_2
nabl_collect_1_4
preserve_annos_1_0
origin_track_forced_1_0
q_44790
nabl_siblings_0_4
nabl_siblings_0_4
nabl_collect_1_4
preserve_annos_1_0
origin_track_forced_1_0
q_44790
nabl_siblings_0_4
nabl_siblings_0_4
nabl_siblings_0_4
nabl_collect_1_4
preserve_annos_1_0
origin_track_forced_1_0
q_44790
nabl_siblings_0_4
nabl_siblings_0_4
nabl_collect_1_4
preserve_annos_1_0
origin_track_forced_1_0
q_44790
nabl_siblings_0_4
nabl_collect_1_4
preserve_annos_1_0
origin_track_forced_1_0
q_44790
nabl_siblings_0_4
nabl_siblings_0_4
nabl_siblings_0_4
nabl_collect_1_4
nabl_annotate_properties_0_3
try_1_0
nabl_hiding_task_0_1
nabl_uri_0_0
fetch_elem_1_0
nabl_collect_one_resolved_def_0_0
insert_results_or_delay_0_0
task_delay_0_0
task_api_delay_0_1

Java trace

org.spoofax.interpreter.core.InterpreterException: Exception during evaluation
	at org.spoofax.interpreter.core.Interpreter.evaluate(Interpreter.java:120)
	at org.spoofax.interpreter.core.Interpreter.invoke(Interpreter.java:82)
	at org.strategoxt.HybridInterpreter.invoke(HybridInterpreter.java:424)
	at org.strategoxt.imp.debug.core.str.launching.DebuggableHybridInterpreter.invoke(DebuggableHybridInterpreter.java:150)
	at org.strategoxt.imp.runtime.services.StrategoObserver.invoke(StrategoObserver.java:637)
	at org.strategoxt.imp.runtime.services.StrategoObserver.invokeSilent(StrategoObserver.java:695)
	at org.strategoxt.imp.runtime.services.StrategoObserver.update(StrategoObserver.java:399)
	at org.strategoxt.imp.runtime.services.StrategoObserverUpdateJob.analyze(StrategoObserverUpdateJob.java:30)
	at org.strategoxt.imp.runtime.services.StrategoAnalysisQueue$UpdateJob.run(StrategoAnalysisQueue.java:82)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.RuntimeException: Cannot delay task while no task evaluation is in progress.
	at org.metaborg.runtime.task.primitives.task_api_delay_0_1.call(task_api_delay_0_1.java:26)
	at org.spoofax.interpreter.stratego.PrimT.eval(PrimT.java:63)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.lang.compat.override.performance_tweaks.lifted6945.invoke(lifted6945.java:24)
	at org.strategoxt.lang.SRTS_one.fetchMaintainAnnos(SRTS_one.java:57)
	at org.strategoxt.lang.SRTS_one.invoke(SRTS_one.java:21)
	at org.strategoxt.lang.compat.override.performance_tweaks.fetch_elem_1_0_override.invoke(fetch_elem_1_0_override.java:27)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.stratego_lib.try_1_0.invoke(try_1_0.java:28)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.stratego_lib.preserve_annos_1_0.invoke(preserve_annos_1_0.java:29)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.stratego_lib.preserve_annos_1_0.invoke(preserve_annos_1_0.java:29)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.stratego_lib.preserve_annos_1_0.invoke(preserve_annos_1_0.java:29)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.stratego_lib.preserve_annos_1_0.invoke(preserve_annos_1_0.java:29)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.stratego.SDefT.evaluate(SDefT.java:213)
	at org.strategoxt.lang.InteropStrategy.invokeDynamic(InteropStrategy.java:57)
	at org.strategoxt.lang.DynamicStrategy.invoke(DynamicStrategy.java:22)
	at org.strategoxt.stratego_lib.preserve_annos_1_0.invoke(preserve_annos_1_0.java:29)
	at org.strategoxt.lang.Strategy.invokeDynamic(Strategy.java:40)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:192)
	at org.strategoxt.lang.InteropSDefT.evaluate(InteropSDefT.java:183)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.evaluate(InteropSDefT.java:245)
	at org.strategoxt.lang.InteropSDefT$StrategyBody.eval(InteropSDefT.java:238)
	at org.spoofax.interpreter.stratego.Strategy.evaluate(Strategy.java:76)
	at org.spoofax.interpreter.core.Interpreter.evaluate(Interpreter.java:109)
	... 9 more
Submitted by Daco Harkes on 6 March 2014 at 13:28

On 6 March 2014 at 13:31 Daco Harkes commented:

Oops, there was a typo.

Entity(x, _) :
	defines Entity x of type Type(x)
	scopes Property
	implicitly defines This This() [[and not "this"]] of type Type(x)
	scopes This

Fixing the typo makes This() resolve, but after hitting reset and reanalyse the stacktrace is back.


On 6 March 2014 at 13:52 Guido Wachsmuth commented:

This is caused by an error in the default task creation for hiding errors. When you turn them of, this should work again.


On 6 March 2014 at 13:56 Daco Harkes commented:

Disabling hiding errors does not solve the stacktrace.

check.str

// ...
strategies
  nabl-check-disable-hiding(|uri, ns) = id

On 6 March 2014 at 14:07 Guido Wachsmuth commented:

Ok, that’s strange.

The error should be somewhere here:

nabl_annotate_properties_0_3
try_1_0
nabl_hiding_task_0_1
 nabl_uri_0_0
 fetch_elem_1_0
 nabl_collect_one_resolved_def_0_0
 insert_results_or_delay_0_0
 task_delay_0_0
 task_api_delay_0_1

On 11 June 2014 at 12:56 Daco Harkes commented:

Steps to reproduce this error do no longer result in errors.


On 11 June 2014 at 12:56 Daco Harkes closed this issue.

Log in to post comments