private void passStacktraceParams( final Multimap<ImFunction, ImFunctionCall> calls, Set<ImFunction> affectedFuncs) { // pass the stacktrace parameter at all cals for (ImFunction f : affectedFuncs) { for (ImFunctionCall call : calls.get(f)) { ImFunction caller = call.getNearestFunc(); ImExpr stExpr; if (isMainOrConfig(caller)) { stExpr = str(" " + f.getName()); } else { ImVar stackTraceVar = getStackTraceVar(caller); WPos source = call.attrTrace().attrSource(); String callPos; if (source.getFile().startsWith("<")) { callPos = ""; } else { callPos = "\n " + source.printShort(); } stExpr = JassIm.ImOperatorCall( WurstOperator.PLUS, JassIm.ImExprs(str(callPos), JassIm.ImVarAccess(stackTraceVar))); } call.getArguments().add(stExpr); } } }