diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitorWithContext.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitorWithContext.java index 9d4224e686e..bd817120a65 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitorWithContext.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitorWithContext.java @@ -22,6 +22,8 @@ package com.google.dart.compiler.backend.js.ast; * file: dev/core/src/com/google/gwt/dev/js/ast/JsVisitor.java */ +import org.jetbrains.annotations.NotNull; + import java.util.List; /** @@ -31,10 +33,14 @@ import java.util.List; public abstract class JsVisitorWithContext { public final T accept(T node) { + if (node == null) return null; + return doAccept(node); } public JsExpression acceptLvalue(JsExpression expr) { + if (expr == null) return null; + return doAcceptLvalue(expr); } @@ -43,6 +49,8 @@ public abstract class JsVisitorWithContext { } public final T acceptStatement(T statement) { + if (statement == null) return null; + //noinspection unchecked return (T) doAcceptStatement(statement); } @@ -51,304 +59,304 @@ public abstract class JsVisitorWithContext { doAcceptStatementList(statements); } - public void endVisit(JsArrayAccess x, JsContext ctx) { + public void endVisit(@NotNull JsArrayAccess x, @NotNull JsContext ctx) { } - public void endVisit(JsArrayLiteral x, JsContext ctx) { + public void endVisit(@NotNull JsArrayLiteral x, @NotNull JsContext ctx) { } - public void endVisit(JsBinaryOperation x, JsContext ctx) { + public void endVisit(@NotNull JsBinaryOperation x, @NotNull JsContext ctx) { } - public void endVisit(JsBlock x, JsContext ctx) { + public void endVisit(@NotNull JsBlock x, @NotNull JsContext ctx) { } - public void endVisit(JsLiteral.JsBooleanLiteral x, JsContext ctx) { + public void endVisit(@NotNull JsLiteral.JsBooleanLiteral x, @NotNull JsContext ctx) { } - public void endVisit(JsBreak x, JsContext ctx) { + public void endVisit(@NotNull JsBreak x, @NotNull JsContext ctx) { } - public void endVisit(JsCase x, JsContext ctx) { + public void endVisit(@NotNull JsCase x, @NotNull JsContext ctx) { } - public void endVisit(JsCatch x, JsContext ctx) { + public void endVisit(@NotNull JsCatch x, @NotNull JsContext ctx) { } - public void endVisit(JsConditional x, JsContext ctx) { + public void endVisit(@NotNull JsConditional x, @NotNull JsContext ctx) { } - public void endVisit(JsContinue x, JsContext ctx) { + public void endVisit(@NotNull JsContinue x, @NotNull JsContext ctx) { } - public void endVisit(JsDebugger x, JsContext ctx) { + public void endVisit(@NotNull JsDebugger x, @NotNull JsContext ctx) { } - public void endVisit(JsDefault x, JsContext ctx) { + public void endVisit(@NotNull JsDefault x, @NotNull JsContext ctx) { } - public void endVisit(JsDoWhile x, JsContext ctx) { + public void endVisit(@NotNull JsDoWhile x, @NotNull JsContext ctx) { } - public void endVisit(JsEmpty x, JsContext ctx) { + public void endVisit(@NotNull JsEmpty x, @NotNull JsContext ctx) { } - public void endVisit(JsExpressionStatement x, JsContext ctx) { + public void endVisit(@NotNull JsExpressionStatement x, @NotNull JsContext ctx) { } - public void endVisit(JsFor x, JsContext ctx) { + public void endVisit(@NotNull JsFor x, @NotNull JsContext ctx) { } - public void endVisit(JsForIn x, JsContext ctx) { + public void endVisit(@NotNull JsForIn x, @NotNull JsContext ctx) { } - public void endVisit(JsFunction x, JsContext ctx) { + public void endVisit(@NotNull JsFunction x, @NotNull JsContext ctx) { } - public void endVisit(JsIf x, JsContext ctx) { + public void endVisit(@NotNull JsIf x, @NotNull JsContext ctx) { } - public void endVisit(JsInvocation x, JsContext ctx) { + public void endVisit(@NotNull JsInvocation x, @NotNull JsContext ctx) { } - public void endVisit(JsLabel x, JsContext ctx) { + public void endVisit(@NotNull JsLabel x, @NotNull JsContext ctx) { } - public void endVisit(JsName x, JsContext ctx) { + public void endVisit(@NotNull JsName x, @NotNull JsContext ctx) { } - public void endVisit(JsNameRef x, JsContext ctx) { + public void endVisit(@NotNull JsNameRef x, @NotNull JsContext ctx) { } - public void endVisit(JsNew x, JsContext ctx) { + public void endVisit(@NotNull JsNew x, @NotNull JsContext ctx) { } - public void endVisit(JsNullLiteral x, JsContext ctx) { + public void endVisit(@NotNull JsNullLiteral x, @NotNull JsContext ctx) { } - public void endVisit(JsNumberLiteral x, JsContext ctx) { + public void endVisit(@NotNull JsNumberLiteral x, @NotNull JsContext ctx) { } - public void endVisit(JsObjectLiteral x, JsContext ctx) { + public void endVisit(@NotNull JsObjectLiteral x, @NotNull JsContext ctx) { } - public void endVisit(JsParameter x, JsContext ctx) { + public void endVisit(@NotNull JsParameter x, @NotNull JsContext ctx) { } - public void endVisit(JsPostfixOperation x, JsContext ctx) { + public void endVisit(@NotNull JsPostfixOperation x, @NotNull JsContext ctx) { } - public void endVisit(JsPrefixOperation x, JsContext ctx) { + public void endVisit(@NotNull JsPrefixOperation x, @NotNull JsContext ctx) { } - public void endVisit(JsProgram x, JsContext ctx) { + public void endVisit(@NotNull JsProgram x, @NotNull JsContext ctx) { } - public void endVisit(JsProgramFragment x, JsContext ctx) { + public void endVisit(@NotNull JsProgramFragment x, @NotNull JsContext ctx) { } - public void endVisit(JsPropertyInitializer x, JsContext ctx) { + public void endVisit(@NotNull JsPropertyInitializer x, @NotNull JsContext ctx) { } - public void endVisit(JsRegExp x, JsContext ctx) { + public void endVisit(@NotNull JsRegExp x, @NotNull JsContext ctx) { } - public void endVisit(JsReturn x, JsContext ctx) { + public void endVisit(@NotNull JsReturn x, @NotNull JsContext ctx) { } - public void endVisit(JsStringLiteral x, JsContext ctx) { + public void endVisit(@NotNull JsStringLiteral x, @NotNull JsContext ctx) { } - public void endVisit(JsSwitch x, JsContext ctx) { + public void endVisit(@NotNull JsSwitch x, @NotNull JsContext ctx) { } - public void endVisit(JsLiteral.JsThisRef x, JsContext ctx) { + public void endVisit(@NotNull JsLiteral.JsThisRef x, @NotNull JsContext ctx) { } - public void endVisit(JsThrow x, JsContext ctx) { + public void endVisit(@NotNull JsThrow x, @NotNull JsContext ctx) { } - public void endVisit(JsTry x, JsContext ctx) { + public void endVisit(@NotNull JsTry x, @NotNull JsContext ctx) { } - public void endVisit(JsVars.JsVar x, JsContext ctx) { + public void endVisit(@NotNull JsVars.JsVar x, @NotNull JsContext ctx) { } - public void endVisit(JsVars x, JsContext ctx) { + public void endVisit(@NotNull JsVars x, @NotNull JsContext ctx) { } - public void endVisit(JsWhile x, JsContext ctx) { + public void endVisit(@NotNull JsWhile x, @NotNull JsContext ctx) { } - public boolean visit(JsArrayAccess x, JsContext ctx) { + public boolean visit(@NotNull JsArrayAccess x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsArrayLiteral x, JsContext ctx) { + public boolean visit(@NotNull JsArrayLiteral x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsBinaryOperation x, JsContext ctx) { + public boolean visit(@NotNull JsBinaryOperation x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsBlock x, JsContext ctx) { + public boolean visit(@NotNull JsBlock x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsLiteral.JsBooleanLiteral x, JsContext ctx) { + public boolean visit(@NotNull JsLiteral.JsBooleanLiteral x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsBreak x, JsContext ctx) { + public boolean visit(@NotNull JsBreak x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsCase x, JsContext ctx) { + public boolean visit(@NotNull JsCase x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsCatch x, JsContext ctx) { + public boolean visit(@NotNull JsCatch x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsConditional x, JsContext ctx) { + public boolean visit(@NotNull JsConditional x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsContinue x, JsContext ctx) { + public boolean visit(@NotNull JsContinue x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsDebugger x, JsContext ctx) { + public boolean visit(@NotNull JsDebugger x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsDefault x, JsContext ctx) { + public boolean visit(@NotNull JsDefault x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsDoWhile x, JsContext ctx) { + public boolean visit(@NotNull JsDoWhile x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsEmpty x, JsContext ctx) { + public boolean visit(@NotNull JsEmpty x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsExpressionStatement x, JsContext ctx) { + public boolean visit(@NotNull JsExpressionStatement x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsFor x, JsContext ctx) { + public boolean visit(@NotNull JsFor x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsForIn x, JsContext ctx) { + public boolean visit(@NotNull JsForIn x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsFunction x, JsContext ctx) { + public boolean visit(@NotNull JsFunction x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsIf x, JsContext ctx) { + public boolean visit(@NotNull JsIf x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsInvocation x, JsContext ctx) { + public boolean visit(@NotNull JsInvocation x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsLabel x, JsContext ctx) { + public boolean visit(@NotNull JsLabel x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsName x, JsContext ctx) { + public boolean visit(@NotNull JsName x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsNameRef x, JsContext ctx) { + public boolean visit(@NotNull JsNameRef x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsNew x, JsContext ctx) { + public boolean visit(@NotNull JsNew x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsNullLiteral x, JsContext ctx) { + public boolean visit(@NotNull JsNullLiteral x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsNumberLiteral x, JsContext ctx) { + public boolean visit(@NotNull JsNumberLiteral x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsObjectLiteral x, JsContext ctx) { + public boolean visit(@NotNull JsObjectLiteral x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsParameter x, JsContext ctx) { + public boolean visit(@NotNull JsParameter x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsPostfixOperation x, JsContext ctx) { + public boolean visit(@NotNull JsPostfixOperation x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsPrefixOperation x, JsContext ctx) { + public boolean visit(@NotNull JsPrefixOperation x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsProgram x, JsContext ctx) { + public boolean visit(@NotNull JsProgram x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsProgramFragment x, JsContext ctx) { + public boolean visit(@NotNull JsProgramFragment x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsPropertyInitializer x, JsContext ctx) { + public boolean visit(@NotNull JsPropertyInitializer x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsRegExp x, JsContext ctx) { + public boolean visit(@NotNull JsRegExp x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsReturn x, JsContext ctx) { + public boolean visit(@NotNull JsReturn x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsStringLiteral x, JsContext ctx) { + public boolean visit(@NotNull JsStringLiteral x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsSwitch x, JsContext ctx) { + public boolean visit(@NotNull JsSwitch x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsLiteral.JsThisRef x, JsContext ctx) { + public boolean visit(@NotNull JsLiteral.JsThisRef x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsThrow x, JsContext ctx) { + public boolean visit(@NotNull JsThrow x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsTry x, JsContext ctx) { + public boolean visit(@NotNull JsTry x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsVars.JsVar x, JsContext ctx) { + public boolean visit(@NotNull JsVars.JsVar x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsVars x, JsContext ctx) { + public boolean visit(@NotNull JsVars x, @NotNull JsContext ctx) { return true; } - public boolean visit(JsWhile x, JsContext ctx) { + public boolean visit(@NotNull JsWhile x, @NotNull JsContext ctx) { return true; } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/FunctionReader.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/FunctionReader.kt index e9864b48957..1d1e1cd688f 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/FunctionReader.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/FunctionReader.kt @@ -149,9 +149,7 @@ private fun JsFunction.markInlineArguments(descriptor: CallableDescriptor) { } val visitor = object: JsVisitorWithContextImpl() { - override fun endVisit(x: JsInvocation?, ctx: JsContext<*>?) { - if (x == null || ctx == null) return - + override fun endVisit(x: JsInvocation, ctx: JsContext<*>) { val qualifier: JsExpression? val namesSet: Set @@ -180,11 +178,11 @@ private fun replaceExternalNames(function: JsFunction, externalReplacements: Map if (replacements.isEmpty()) return val visitor = object: JsVisitorWithContextImpl() { - override fun endVisit(x: JsNameRef?, ctx: JsContext<*>?) { - if (x == null || x.getQualifier() != null) return + override fun endVisit(x: JsNameRef, ctx: JsContext<*>) { + if (x.getQualifier() != null) return replacements[x.getIdent()]?.let { - ctx?.replaceMe(it) + ctx.replaceMe(it) } } } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java index a4b96b30dbc..a1c5695624f 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java @@ -68,7 +68,7 @@ public class JsInliner extends JsVisitorWithContextImpl { } @Override - public boolean visit(JsFunction function, JsContext context) { + public boolean visit(@NotNull JsFunction function, @NotNull JsContext context) { inliningContexts.push(new JsInliningContext(function)); assert !inProcessFunctions.contains(function): "Inliner has revisited function"; inProcessFunctions.add(function); @@ -81,7 +81,7 @@ public class JsInliner extends JsVisitorWithContextImpl { } @Override - public void endVisit(JsFunction function, JsContext context) { + public void endVisit(@NotNull JsFunction function, @NotNull JsContext context) { super.endVisit(function, context); refreshLabelNames(getInliningContext().newNamingContext(), function); @@ -99,7 +99,7 @@ public class JsInliner extends JsVisitorWithContextImpl { } @Override - public boolean visit(JsInvocation call, JsContext context) { + public boolean visit(@NotNull JsInvocation call, @NotNull JsContext context) { if (shouldInline(call) && canInline(call)) { JsFunction containingFunction = getCurrentNamedFunction(); if (containingFunction != null) { @@ -124,7 +124,7 @@ public class JsInliner extends JsVisitorWithContextImpl { } @Override - public void endVisit(JsInvocation x, JsContext ctx) { + public void endVisit(@NotNull JsInvocation x, @NotNull JsContext ctx) { JsCallInfo lastCallInfo = null; if (!inlineCallInfos.isEmpty()) { diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/NodeRemover.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/NodeRemover.kt index 00423810be6..ee2cf2c58ce 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/NodeRemover.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/NodeRemover.kt @@ -22,9 +22,7 @@ import com.google.dart.compiler.backend.js.ast.JsContext private class NodeRemover(val klass: Class, val predicate: (T) -> Boolean): JsVisitorWithContextImpl() { - override fun doTraverse(node: T?, ctx: JsContext<*>?) { - if (node == null || ctx == null) return - + override fun doTraverse(node: T, ctx: JsContext<*>) { if (klass.isInstance(node)) { val instance = klass.cast(node)!! diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedFunctionDefinitions.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedFunctionDefinitions.kt index 3af1c75e1bf..90d15e39166 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedFunctionDefinitions.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedFunctionDefinitions.kt @@ -66,8 +66,8 @@ private class UnusedLocalFunctionsCollector(functions: Map) } } - override fun visit(x: JsPropertyInitializer?, ctx: JsContext<*>?): Boolean { - val value = x?.getValueExpr() + override fun visit(x: JsPropertyInitializer, ctx: JsContext<*>): Boolean { + val value = x.getValueExpr() return when (value) { is JsFunction -> !wasProcessed(value) @@ -75,18 +75,16 @@ private class UnusedLocalFunctionsCollector(functions: Map) } } - override fun visit(x: JsFunction?, ctx: JsContext<*>?): Boolean { + override fun visit(x: JsFunction, ctx: JsContext<*>): Boolean { return !(wasProcessed(x)) } - override fun endVisit(x: JsFunction?, ctx: JsContext<*>?) { - if (x == null) return - + override fun endVisit(x: JsFunction, ctx: JsContext<*>) { processed.add(x) } - override fun endVisit(x: JsNameRef?, ctx: JsContext<*>?) { - val name = x?.getName() + override fun endVisit(x: JsNameRef, ctx: JsContext<*>) { + val name = x.getName() if (isFunctionReference(x) && name != null) { tracker.markReachable(name) } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedLocalFunctionDeclarations.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedLocalFunctionDeclarations.kt index 1569f3c33a4..1fa6bf708b4 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedLocalFunctionDeclarations.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/clean/removeUnusedLocalFunctionDeclarations.kt @@ -45,9 +45,7 @@ private class UnusedInstanceCollector : JsVisitorWithContextImpl() { public val removableDeclarations: List get() = tracker.removable - override fun visit(x: JsVars.JsVar?, ctx: JsContext<*>?): Boolean { - if (x == null) return false - + override fun visit(x: JsVars.JsVar, ctx: JsContext<*>): Boolean { if (!isLocalFunctionDeclaration(x)) return super.visit(x, ctx) val name = x.getName()!! diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/ReferenceNameCollector.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/ReferenceNameCollector.kt index cbef182a301..fb74d244ea2 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/ReferenceNameCollector.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/ReferenceNameCollector.kt @@ -28,8 +28,8 @@ class ReferenceNameCollector : JsVisitorWithContextImpl() { public val references: List get() = referenceSet.toList() - override fun endVisit(x: JsNameRef?, ctx: JsContext<*>?) { - val name = x?.getName() + override fun endVisit(x: JsNameRef, ctx: JsContext<*>) { + val name = x.getName() if (name != null) { referenceSet.add(name) } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/LabelNameRefreshingVisitor.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/LabelNameRefreshingVisitor.kt index ff22732ae44..bcb03d4e3ca 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/LabelNameRefreshingVisitor.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/LabelNameRefreshingVisitor.kt @@ -24,10 +24,10 @@ import com.google.dart.compiler.backend.js.ast.JsContext import com.google.dart.compiler.backend.js.ast.JsLabel class LabelNameRefreshingVisitor(val context: NamingContext, val functionScope: JsFunctionScope) : JsVisitorWithContextImpl() { - override fun visit(x: JsFunction?, ctx: JsContext<*>?): Boolean = false + override fun visit(x: JsFunction, ctx: JsContext<*>): Boolean = false - override fun visit(x: JsLabel?, ctx: JsContext<*>?): Boolean { - val labelName = x!!.getName() + override fun visit(x: JsLabel, ctx: JsContext<*>): Boolean { + val labelName = x.getName() val freshName = functionScope.enterLabel(labelName.getIdent()) if (freshName.getIdent() != labelName.getIdent()) { @@ -37,7 +37,7 @@ class LabelNameRefreshingVisitor(val context: NamingContext, val functionScope: return super.visit(x, ctx) } - override fun endVisit(x: JsLabel?, ctx: JsContext<*>?) { + override fun endVisit(x: JsLabel, ctx: JsContext<*>) { super.endVisit(x, ctx) functionScope.exitLabel() } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/NameReplacingVisitor.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/NameReplacingVisitor.kt index 274f8c61bda..24c2043b42c 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/NameReplacingVisitor.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/NameReplacingVisitor.kt @@ -27,18 +27,14 @@ import com.google.dart.compiler.backend.js.ast.JsLabel class NameReplacingVisitor(private val replaceMap: Map) : JsVisitorWithContextImpl() { - override fun endVisit(x: JsNameRef?, ctx: JsContext<*>?) { - if (x == null || ctx == null) return - + override fun endVisit(x: JsNameRef, ctx: JsContext<*>) { val replacement = replaceMap[x.getName()] if (replacement == null) return ctx.replaceMe(replacement) } - override fun endVisit(x: JsVars.JsVar?, ctx: JsContext<*>?) { - if (x == null || ctx == null) return - + override fun endVisit(x: JsVars.JsVar, ctx: JsContext<*>) { val replacement = replaceMap[x.getName()] if (replacement is HasName) { val replacementVar = JsVars.JsVar(replacement.getName(), x.getInitExpression()) @@ -46,9 +42,7 @@ class NameReplacingVisitor(private val replaceMap: Map) : } } - override fun endVisit(x: JsLabel?, ctx: JsContext<*>?) { - if (x == null || ctx == null) return - + override fun endVisit(x: JsLabel, ctx: JsContext<*>) { val replacement = replaceMap[x.getName()] if (replacement is HasName) { val replacementLabel = JsLabel(replacement.getName(), x.getStatement()) diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ReturnReplacingVisitor.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ReturnReplacingVisitor.kt index ef5cee45eda..982849ade75 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ReturnReplacingVisitor.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ReturnReplacingVisitor.kt @@ -33,16 +33,14 @@ class ReturnReplacingVisitor(private val resultRef: JsNameRef?, private val brea /** * Prevents replacing returns in object literal */ - override fun visit(x: JsObjectLiteral?, ctx: JsContext<*>?): Boolean = false + override fun visit(x: JsObjectLiteral, ctx: JsContext<*>): Boolean = false /** * Prevents replacing returns in inner function */ - override fun visit(x: JsFunction?, ctx: JsContext<*>?): Boolean = false - - override fun endVisit(x: JsReturn?, ctx: JsContext<*>?) { - if (x == null || ctx == null) return + override fun visit(x: JsFunction, ctx: JsContext<*>): Boolean = false + override fun endVisit(x: JsReturn, ctx: JsContext<*>) { ctx.removeMe() val returnReplacement = getReturnReplacement(x.getExpression()) diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ThisReplacingVisitor.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ThisReplacingVisitor.kt index a3dfda47f89..13815ed438f 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ThisReplacingVisitor.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/rewriters/ThisReplacingVisitor.kt @@ -24,11 +24,11 @@ import com.google.dart.compiler.backend.js.ast.JsObjectLiteral import com.google.dart.compiler.backend.js.ast.JsVisitorWithContextImpl class ThisReplacingVisitor(private val thisReplacement: JsExpression) : JsVisitorWithContextImpl() { - override fun endVisit(x: JsLiteral.JsThisRef?, ctx: JsContext<*>?) { - ctx?.replaceMe(thisReplacement) + override fun endVisit(x: JsLiteral.JsThisRef, ctx: JsContext<*>) { + ctx.replaceMe(thisReplacement) } - override fun visit(x: JsFunction?, ctx: JsContext<*>?) = false + override fun visit(x: JsFunction, ctx: JsContext<*>) = false - override fun visit(x: JsObjectLiteral?, ctx: JsContext<*>?) = false + override fun visit(x: JsObjectLiteral, ctx: JsContext<*>) = false }