Änderungen

Summary

  1. fixed global initialization code (commit: 6b7b9df) (details)
Commit 6b7b9df5987e021cf6fcbbf609c7d8876d3c70c4 by peter.peq
fixed global initialization code
for global initialization, we have two places: init functions for
packages and a map that stores the initialization code for each
variable. The map is used to avoid running all init functions when
executing code at compiletime.
The problem was that the rewrite phases for certain expressions would
not correctly update the map and this would result in two different
initializers in the init function and the map. To avoi this problem,
with this commit the map no longer stores the init expression directly,
but instead keeps a reference to the ImSet init statements in the init
function. This should not be rewritten, since it is a simple array or
global assignment, so the whole process should be more stable.
(commit: 6b7b9df)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/GenericsTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/ImPrinter.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/CompiletimeFunctionRunner.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/StackTraceInjector2.java (diff)
The file was modifiedde.peeeq.wurstscript/parserspec/jass_im.parseq (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/ImTranslator.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/interpreter/EvaluateExpr.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/interpreter/ProgramState.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/EliminateClasses.java (diff)