From 3adc59d7115b3c5f9f91f441e2f5f54f086e9d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20B=C3=BCscher?= Date: Tue, 10 Jul 2018 18:37:55 +0200 Subject: [PATCH] Remove unused params from SSource and Walker The "source" field in SSource seems unused. If removed, it can also be removed from the ctor, which in turn makes is possible to delete the sourceText in the Walker class. --- .../org/elasticsearch/painless/antlr/Walker.java | 6 ++---- .../org/elasticsearch/painless/node/SSource.java | 13 +++++-------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/modules/lang-painless/src/main/java/org/elasticsearch/painless/antlr/Walker.java b/modules/lang-painless/src/main/java/org/elasticsearch/painless/antlr/Walker.java index e2742ffb9936d..6c8d3a62e065b 100644 --- a/modules/lang-painless/src/main/java/org/elasticsearch/painless/antlr/Walker.java +++ b/modules/lang-painless/src/main/java/org/elasticsearch/painless/antlr/Walker.java @@ -29,7 +29,6 @@ import org.antlr.v4.runtime.atn.PredictionMode; import org.antlr.v4.runtime.tree.TerminalNode; import org.elasticsearch.painless.CompilerSettings; -import org.elasticsearch.painless.lookup.PainlessLookup; import org.elasticsearch.painless.Globals; import org.elasticsearch.painless.Location; import org.elasticsearch.painless.Operation; @@ -107,6 +106,7 @@ import org.elasticsearch.painless.antlr.PainlessParser.TryContext; import org.elasticsearch.painless.antlr.PainlessParser.VariableContext; import org.elasticsearch.painless.antlr.PainlessParser.WhileContext; +import org.elasticsearch.painless.lookup.PainlessLookup; import org.elasticsearch.painless.node.AExpression; import org.elasticsearch.painless.node.ANode; import org.elasticsearch.painless.node.AStatement; @@ -184,7 +184,6 @@ public static SSource buildPainlessTree(ScriptClassInfo mainMethod, MainMethodRe private final CompilerSettings settings; private final Printer debugStream; private final String sourceName; - private final String sourceText; private final PainlessLookup painlessLookup; private final Deque reserved = new ArrayDeque<>(); @@ -198,7 +197,6 @@ private Walker(ScriptClassInfo scriptClassInfo, MainMethodReserved reserved, Str this.debugStream = debugStream; this.settings = settings; this.sourceName = Location.computeSourceName(sourceName); - this.sourceText = sourceText; this.globals = new Globals(new BitSet(sourceText.length())); this.painlessLookup = painlessLookup; this.source = (SSource)visit(buildAntlrTree(sourceText)); @@ -267,7 +265,7 @@ public ANode visitSource(SourceContext ctx) { statements.add((AStatement)visit(ctx.dstatement())); } - return new SSource(scriptClassInfo, settings, sourceName, sourceText, debugStream, (MainMethodReserved)reserved.pop(), + return new SSource(scriptClassInfo, settings, sourceName, debugStream, (MainMethodReserved)reserved.pop(), location(ctx), functions, globals, statements); } diff --git a/modules/lang-painless/src/main/java/org/elasticsearch/painless/node/SSource.java b/modules/lang-painless/src/main/java/org/elasticsearch/painless/node/SSource.java index 4781457a57dfa..cd473e2c84ec7 100644 --- a/modules/lang-painless/src/main/java/org/elasticsearch/painless/node/SSource.java +++ b/modules/lang-painless/src/main/java/org/elasticsearch/painless/node/SSource.java @@ -21,9 +21,6 @@ import org.elasticsearch.painless.CompilerSettings; import org.elasticsearch.painless.Constant; -import org.elasticsearch.painless.lookup.PainlessLookup; -import org.elasticsearch.painless.lookup.PainlessMethod; -import org.elasticsearch.painless.lookup.PainlessMethodKey; import org.elasticsearch.painless.Globals; import org.elasticsearch.painless.Locals; import org.elasticsearch.painless.Locals.Variable; @@ -32,6 +29,9 @@ import org.elasticsearch.painless.ScriptClassInfo; import org.elasticsearch.painless.SimpleChecksAdapter; import org.elasticsearch.painless.WriterConstants; +import org.elasticsearch.painless.lookup.PainlessLookup; +import org.elasticsearch.painless.lookup.PainlessMethod; +import org.elasticsearch.painless.lookup.PainlessMethodKey; import org.elasticsearch.painless.node.SFunction.FunctionReserved; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; @@ -130,7 +130,6 @@ public int getMaxLoopCounter() { private final ScriptClassInfo scriptClassInfo; private final CompilerSettings settings; private final String name; - private final String source; private final Printer debugStream; private final MainMethodReserved reserved; private final List functions; @@ -141,14 +140,12 @@ public int getMaxLoopCounter() { private final List getMethods; private byte[] bytes; - public SSource(ScriptClassInfo scriptClassInfo, CompilerSettings settings, String name, String source, Printer debugStream, - MainMethodReserved reserved, Location location, - List functions, Globals globals, List statements) { + public SSource(ScriptClassInfo scriptClassInfo, CompilerSettings settings, String name, Printer debugStream, + MainMethodReserved reserved, Location location, List functions, Globals globals, List statements) { super(location); this.scriptClassInfo = Objects.requireNonNull(scriptClassInfo); this.settings = Objects.requireNonNull(settings); this.name = Objects.requireNonNull(name); - this.source = Objects.requireNonNull(source); this.debugStream = debugStream; this.reserved = Objects.requireNonNull(reserved); // process any synthetic functions generated by walker (because right now, thats still easy)