diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsConstructExpressionVisitor.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsConstructExpressionVisitor.java index 4cfd42b55c7..6e2bd567fdf 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsConstructExpressionVisitor.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsConstructExpressionVisitor.java @@ -5,6 +5,7 @@ package com.google.dart.compiler.backend.js; import com.google.dart.compiler.backend.js.ast.*; +import org.jetbrains.annotations.NotNull; /** * Searches for method invocations in constructor expressions that would not @@ -29,7 +30,7 @@ public class JsConstructExpressionVisitor extends RecursiveJsVisitor { * We only look at the array expression since the index has its own scope. */ @Override - public void visitArrayAccess(JsArrayAccess x) { + public void visitArrayAccess(@NotNull JsArrayAccess x) { accept(x.getArrayExpression()); } @@ -37,23 +38,23 @@ public class JsConstructExpressionVisitor extends RecursiveJsVisitor { * Array literals have their own scoping. */ @Override - public void visitArray(JsArrayLiteral x) { + public void visitArray(@NotNull JsArrayLiteral x) { } /** * Functions have their own scoping. */ @Override - public void visitFunction(JsFunction x) { + public void visitFunction(@NotNull JsFunction x) { } @Override - public void visitInvocation(JsInvocation invocation) { + public void visitInvocation(@NotNull JsInvocation invocation) { containsInvocation = true; } @Override - public void visitNameRef(JsNameRef nameRef) { + public void visitNameRef(@NotNull JsNameRef nameRef) { if (!nameRef.isLeaf()) { accept(nameRef.getQualifier()); } @@ -63,14 +64,14 @@ public class JsConstructExpressionVisitor extends RecursiveJsVisitor { * New constructs bind to the nearest set of parentheses. */ @Override - public void visitNew(JsNew x) { + public void visitNew(@NotNull JsNew x) { } /** * Object literals have their own scope. */ @Override - public void visitObjectLiteral(JsObjectLiteral x) { + public void visitObjectLiteral(@NotNull JsObjectLiteral x) { } /** diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsFirstExpressionVisitor.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsFirstExpressionVisitor.java index 6789cd2bd71..633197db0aa 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsFirstExpressionVisitor.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsFirstExpressionVisitor.java @@ -6,6 +6,7 @@ package com.google.dart.compiler.backend.js; import com.google.dart.compiler.backend.js.ast.*; import com.google.dart.compiler.backend.js.ast.JsExpressionStatement; +import org.jetbrains.annotations.NotNull; /** * Determines if an expression statement needs to be surrounded by parentheses. @@ -49,56 +50,56 @@ public class JsFirstExpressionVisitor extends RecursiveJsVisitor { } @Override - public void visitArrayAccess(JsArrayAccess x) { + public void visitArrayAccess(@NotNull JsArrayAccess x) { accept(x.getArrayExpression()); } @Override - public void visitArray(JsArrayLiteral x) { + public void visitArray(@NotNull JsArrayLiteral x) { } @Override - public void visitBinaryExpression(JsBinaryOperation x) { + public void visitBinaryExpression(@NotNull JsBinaryOperation x) { accept(x.getArg1()); } @Override - public void visitConditional(JsConditional x) { + public void visitConditional(@NotNull JsConditional x) { accept(x.getTestExpression()); } @Override - public void visitFunction(JsFunction x) { + public void visitFunction(@NotNull JsFunction x) { needsParentheses = true; } @Override - public void visitInvocation(JsInvocation invocation) { + public void visitInvocation(@NotNull JsInvocation invocation) { accept(invocation.getQualifier()); } @Override - public void visitNameRef(JsNameRef nameRef) { + public void visitNameRef(@NotNull JsNameRef nameRef) { if (!nameRef.isLeaf()) { accept(nameRef.getQualifier()); } } @Override - public void visitNew(JsNew x) { + public void visitNew(@NotNull JsNew x) { } @Override - public void visitObjectLiteral(JsObjectLiteral x) { + public void visitObjectLiteral(@NotNull JsObjectLiteral x) { needsParentheses = true; } @Override - public void visitPostfixOperation(JsPostfixOperation x) { + public void visitPostfixOperation(@NotNull JsPostfixOperation x) { accept(x.getArg()); } @Override - public void visitPrefixOperation(JsPrefixOperation x) { + public void visitPrefixOperation(@NotNull JsPrefixOperation x) { } } diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsPrecedenceVisitor.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsPrecedenceVisitor.java index 3a2d8115da9..cf2c7f0d196 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsPrecedenceVisitor.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsPrecedenceVisitor.java @@ -5,6 +5,7 @@ package com.google.dart.compiler.backend.js; import com.google.dart.compiler.backend.js.ast.*; +import org.jetbrains.annotations.NotNull; /** * Precedence indices from "JavaScript - The Definitive Guide" 4th Edition (page @@ -45,42 +46,42 @@ class JsPrecedenceVisitor extends JsVisitor { } @Override - public void visitArrayAccess(JsArrayAccess x) { + public void visitArrayAccess(@NotNull JsArrayAccess x) { answer = 16; } @Override - public void visitArray(JsArrayLiteral x) { + public void visitArray(@NotNull JsArrayLiteral x) { answer = 17; // primary } @Override - public void visitBinaryExpression(JsBinaryOperation x) { + public void visitBinaryExpression(@NotNull JsBinaryOperation x) { answer = x.getOperator().getPrecedence(); } @Override - public void visitBoolean(JsLiteral.JsBooleanLiteral x) { + public void visitBoolean(@NotNull JsLiteral.JsBooleanLiteral x) { answer = 17; // primary } @Override - public void visitConditional(JsConditional x) { + public void visitConditional(@NotNull JsConditional x) { answer = 3; } @Override - public void visitFunction(JsFunction x) { + public void visitFunction(@NotNull JsFunction x) { answer = 17; // primary } @Override - public void visitInvocation(JsInvocation invocation) { + public void visitInvocation(@NotNull JsInvocation invocation) { answer = 16; } @Override - public void visitNameRef(JsNameRef nameRef) { + public void visitNameRef(@NotNull JsNameRef nameRef) { if (nameRef.isLeaf()) { answer = 17; // primary } @@ -90,62 +91,62 @@ class JsPrecedenceVisitor extends JsVisitor { } @Override - public void visitNew(JsNew x) { + public void visitNew(@NotNull JsNew x) { answer = PRECEDENCE_NEW; } @Override - public void visitNull(JsNullLiteral x) { + public void visitNull(@NotNull JsNullLiteral x) { answer = 17; // primary } @Override - public void visitInt(JsNumberLiteral.JsIntLiteral x) { + public void visitInt(@NotNull JsNumberLiteral.JsIntLiteral x) { answer = 17; // primary } @Override - public void visitDouble(JsNumberLiteral.JsDoubleLiteral x) { + public void visitDouble(@NotNull JsNumberLiteral.JsDoubleLiteral x) { answer = 17; // primary } @Override - public void visitObjectLiteral(JsObjectLiteral x) { + public void visitObjectLiteral(@NotNull JsObjectLiteral x) { answer = 17; // primary } @Override - public void visitPostfixOperation(JsPostfixOperation x) { + public void visitPostfixOperation(@NotNull JsPostfixOperation x) { answer = x.getOperator().getPrecedence(); } @Override - public void visitPrefixOperation(JsPrefixOperation x) { + public void visitPrefixOperation(@NotNull JsPrefixOperation x) { answer = x.getOperator().getPrecedence(); } @Override - public void visitPropertyInitializer(JsPropertyInitializer x) { + public void visitPropertyInitializer(@NotNull JsPropertyInitializer x) { answer = 17; // primary } @Override - public void visitRegExp(JsRegExp x) { + public void visitRegExp(@NotNull JsRegExp x) { answer = 17; // primary } @Override - public void visitString(JsStringLiteral x) { + public void visitString(@NotNull JsStringLiteral x) { answer = 17; // primary } @Override - public void visitThis(JsLiteral.JsThisRef x) { + public void visitThis(@NotNull JsLiteral.JsThisRef x) { answer = 17; // primary } @Override - protected void visitElement(JsNode node) { + protected void visitElement(@NotNull JsNode node) { throw new RuntimeException("Only expressions have precedence."); } } diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsRequiresSemiVisitor.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsRequiresSemiVisitor.java index b5a13be9400..880cce0bb6c 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsRequiresSemiVisitor.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsRequiresSemiVisitor.java @@ -5,6 +5,7 @@ package com.google.dart.compiler.backend.js; import com.google.dart.compiler.backend.js.ast.*; +import org.jetbrains.annotations.NotNull; /** * Determines if a statement at the end of a block requires a semicolon. @@ -34,21 +35,21 @@ public class JsRequiresSemiVisitor extends JsVisitor { } @Override - public void visitFor(JsFor x) { + public void visitFor(@NotNull JsFor x) { if (x.getBody() instanceof JsEmpty) { needsSemicolon = true; } } @Override - public void visitForIn(JsForIn x) { + public void visitForIn(@NotNull JsForIn x) { if (x.getBody() instanceof JsEmpty) { needsSemicolon = true; } } @Override - public void visitIf(JsIf x) { + public void visitIf(@NotNull JsIf x) { JsStatement thenStmt = x.getThenStatement(); JsStatement elseStmt = x.getElseStatement(); JsStatement toCheck = thenStmt; @@ -65,14 +66,14 @@ public class JsRequiresSemiVisitor extends JsVisitor { } @Override - public void visitLabel(JsLabel x) { + public void visitLabel(@NotNull JsLabel x) { if (x.getStatement() instanceof JsEmpty) { needsSemicolon = true; } } @Override - public void visitWhile(JsWhile x) { + public void visitWhile(@NotNull JsWhile x) { if (x.getBody() instanceof JsEmpty) { needsSemicolon = true; } diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsToStringGenerationVisitor.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsToStringGenerationVisitor.java index a0c73d3e1dc..b0e3c33b992 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsToStringGenerationVisitor.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/JsToStringGenerationVisitor.java @@ -8,6 +8,7 @@ import com.google.dart.compiler.backend.js.ast.*; import com.google.dart.compiler.backend.js.ast.JsVars.JsVar; import com.google.dart.compiler.util.TextOutput; import gnu.trove.THashSet; +import org.jetbrains.annotations.NotNull; import java.util.Iterator; import java.util.List; @@ -200,7 +201,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitArrayAccess(JsArrayAccess x) { + public void visitArrayAccess(@NotNull JsArrayAccess x) { printPair(x, x.getArrayExpression()); leftSquare(); accept(x.getIndexExpression()); @@ -208,7 +209,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitArray(JsArrayLiteral x) { + public void visitArray(@NotNull JsArrayLiteral x) { leftSquare(); printExpressions(x.getExpressions()); rightSquare(); @@ -227,7 +228,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitBinaryExpression(JsBinaryOperation binaryOperation) { + public void visitBinaryExpression(@NotNull JsBinaryOperation binaryOperation) { JsBinaryOperator operator = binaryOperation.getOperator(); JsExpression arg1 = binaryOperation.getArg1(); boolean isExpressionEnclosed = parenPush(binaryOperation, arg1, !operator.isLeftAssociative()); @@ -272,12 +273,12 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitBlock(JsBlock x) { + public void visitBlock(@NotNull JsBlock x) { printJsBlock(x, true); } @Override - public void visitBoolean(JsLiteral.JsBooleanLiteral x) { + public void visitBoolean(@NotNull JsLiteral.JsBooleanLiteral x) { if (x.getValue()) { p.print(CHARS_TRUE); } @@ -287,13 +288,13 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitBreak(JsBreak x) { + public void visitBreak(@NotNull JsBreak x) { p.print(CHARS_BREAK); continueOrBreakLabel(x); } @Override - public void visitContinue(JsContinue x) { + public void visitContinue(@NotNull JsContinue x) { p.print(CHARS_CONTINUE); continueOrBreakLabel(x); } @@ -307,7 +308,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitCase(JsCase x) { + public void visitCase(@NotNull JsCase x) { p.print(CHARS_CASE); space(); accept(x.getCaseExpression()); @@ -332,7 +333,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitCatch(JsCatch x) { + public void visitCatch(@NotNull JsCatch x) { spaceOpt(); p.print(CHARS_CATCH); spaceOpt(); @@ -355,7 +356,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitConditional(JsConditional x) { + public void visitConditional(@NotNull JsConditional x) { // Associativity: for the then and else branches, it is safe to insert // another // ternary expression, but if the test expression is a ternary, it should @@ -387,12 +388,12 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitDebugger(JsDebugger x) { + public void visitDebugger(@NotNull JsDebugger x) { p.print(CHARS_DEBUGGER); } @Override - public void visitDefault(JsDefault x) { + public void visitDefault(@NotNull JsDefault x) { p.print(CHARS_DEFAULT); _colon(); @@ -400,7 +401,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitWhile(JsWhile x) { + public void visitWhile(@NotNull JsWhile x) { _while(); spaceOpt(); leftParen(); @@ -412,7 +413,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitDoWhile(JsDoWhile x) { + public void visitDoWhile(@NotNull JsDoWhile x) { p.print(CHARS_DO); nestedPush(x.getBody()); accept(x.getBody()); @@ -433,11 +434,11 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitEmpty(JsEmpty x) { + public void visitEmpty(@NotNull JsEmpty x) { } @Override - public void visitExpressionStatement(JsExpressionStatement x) { + public void visitExpressionStatement(@NotNull JsExpressionStatement x) { boolean surroundWithParentheses = JsFirstExpressionVisitor.exec(x); if (surroundWithParentheses) { leftParen(); @@ -449,7 +450,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitFor(JsFor x) { + public void visitFor(@NotNull JsFor x) { _for(); spaceOpt(); leftParen(); @@ -488,7 +489,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitForIn(JsForIn x) { + public void visitForIn(@NotNull JsForIn x) { _for(); spaceOpt(); leftParen(); @@ -523,7 +524,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitFunction(JsFunction x) { + public void visitFunction(@NotNull JsFunction x) { p.print(CHARS_FUNCTION); space(); if (x.getName() != null) { @@ -546,7 +547,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitIf(JsIf x) { + public void visitIf(@NotNull JsIf x) { _if(); spaceOpt(); leftParen(); @@ -585,7 +586,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitInvocation(JsInvocation invocation) { + public void visitInvocation(@NotNull JsInvocation invocation) { printPair(invocation, invocation.getQualifier()); leftParen(); @@ -594,7 +595,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitLabel(JsLabel x) { + public void visitLabel(@NotNull JsLabel x) { nameOf(x); _colon(); spaceOpt(); @@ -602,7 +603,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitNameRef(JsNameRef nameRef) { + public void visitNameRef(@NotNull JsNameRef nameRef) { JsExpression qualifier = nameRef.getQualifier(); if (qualifier != null) { final boolean enclose; @@ -633,7 +634,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitNew(JsNew x) { + public void visitNew(@NotNull JsNew x) { p.print(CHARS_NEW); space(); @@ -653,22 +654,22 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitNull(JsNullLiteral x) { + public void visitNull(@NotNull JsNullLiteral x) { p.print(CHARS_NULL); } @Override - public void visitInt(JsIntLiteral x) { + public void visitInt(@NotNull JsIntLiteral x) { p.print(x.value); } @Override - public void visitDouble(JsDoubleLiteral x) { + public void visitDouble(@NotNull JsDoubleLiteral x) { p.print(x.value); } @Override - public void visitObjectLiteral(JsObjectLiteral objectLiteral) { + public void visitObjectLiteral(@NotNull JsObjectLiteral objectLiteral) { p.print('{'); if (objectLiteral.isMultiline()) { p.indentIn(); @@ -720,12 +721,12 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitParameter(JsParameter x) { + public void visitParameter(@NotNull JsParameter x) { nameOf(x); } @Override - public void visitPostfixOperation(JsPostfixOperation x) { + public void visitPostfixOperation(@NotNull JsPostfixOperation x) { JsUnaryOperator op = x.getOperator(); JsExpression arg = x.getArg(); // unary operators always associate correctly (I think) @@ -734,7 +735,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitPrefixOperation(JsPrefixOperation x) { + public void visitPrefixOperation(@NotNull JsPrefixOperation x) { JsUnaryOperator op = x.getOperator(); p.print(op.getSymbol()); JsExpression arg = x.getArg(); @@ -746,17 +747,17 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitProgram(JsProgram x) { + public void visitProgram(@NotNull JsProgram x) { p.print(""); } @Override - public void visitProgramFragment(JsProgramFragment x) { + public void visitProgramFragment(@NotNull JsProgramFragment x) { p.print(""); } @Override - public void visitRegExp(JsRegExp x) { + public void visitRegExp(@NotNull JsRegExp x) { slash(); p.print(x.getPattern()); slash(); @@ -767,7 +768,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitReturn(JsReturn x) { + public void visitReturn(@NotNull JsReturn x) { p.print(CHARS_RETURN); JsExpression expr = x.getExpression(); if (expr != null) { @@ -777,12 +778,12 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitString(JsStringLiteral x) { + public void visitString(@NotNull JsStringLiteral x) { p.print(javaScriptString(x.getValue())); } @Override - public void visit(JsSwitch x) { + public void visit(@NotNull JsSwitch x) { p.print(CHARS_SWITCH); spaceOpt(); leftParen(); @@ -795,19 +796,19 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitThis(JsLiteral.JsThisRef x) { + public void visitThis(@NotNull JsLiteral.JsThisRef x) { p.print(CHARS_THIS); } @Override - public void visitThrow(JsThrow x) { + public void visitThrow(@NotNull JsThrow x) { p.print(CHARS_THROW); space(); accept(x.getExpression()); } @Override - public void visitTry(JsTry x) { + public void visitTry(@NotNull JsTry x) { p.print(CHARS_TRY); spaceOpt(); accept(x.getTryBlock()); @@ -823,7 +824,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visit(JsVar var) { + public void visit(@NotNull JsVar var) { nameOf(var); JsExpression initExpr = var.getInitExpression(); if (initExpr != null) { @@ -839,7 +840,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitVars(JsVars vars) { + public void visitVars(@NotNull JsVars vars) { var(); space(); boolean sep = false; @@ -860,7 +861,7 @@ public class JsToStringGenerationVisitor extends JsVisitor { } @Override - public void visitDocComment(JsDocComment comment) { + public void visitDocComment(@NotNull JsDocComment comment) { boolean asSingleLine = comment.getTags().size() == 1; if (!asSingleLine) { newlineOpt(); diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitor.kt b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitor.kt index 93c2eebf47f..bb4fdc44439 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitor.kt +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsVisitor.kt @@ -7,8 +7,8 @@ package com.google.dart.compiler.backend.js.ast import com.google.dart.compiler.backend.js.ast.JsVars.JsVar public abstract class JsVisitor { - public open fun accept(node: T) { - node.accept(this) + public open fun accept(node: T) { + node?.accept(this) } public fun acceptList(collection: List) { diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/RecursiveJsVisitor.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/RecursiveJsVisitor.java index 56cb331b789..23f84dbd85f 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/RecursiveJsVisitor.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/RecursiveJsVisitor.java @@ -1,8 +1,10 @@ package com.google.dart.compiler.backend.js.ast; +import org.jetbrains.annotations.NotNull; + public abstract class RecursiveJsVisitor extends JsVisitor { @Override - protected void visitElement(JsNode node) { + protected void visitElement(@NotNull JsNode node) { node.acceptChildren(this); } } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/InstanceCollector.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/InstanceCollector.kt index e9362aacda7..d6f882b74ab 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/InstanceCollector.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/InstanceCollector.kt @@ -23,7 +23,7 @@ import java.util.ArrayList class InstanceCollector(val klass: Class) : RecursiveJsVisitor() { public val collected: MutableList = ArrayList() - override fun visitElement(node: JsNode?) { + override fun visitElement(node: JsNode) { if (klass.isInstance(node)) { collected.add(klass.cast(node)!!) } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/NameCollector.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/NameCollector.kt index a13c5591062..6bb1f7a400f 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/NameCollector.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/NameCollector.kt @@ -28,12 +28,12 @@ import java.util.HashMap class NameCollector(private val scope: JsScope) : RecursiveJsVisitor() { public val names: MutableMap = HashMap() - override fun visit(x: JsVars.JsVar?) { + override fun visit(x: JsVars.JsVar) { super.visit(x) addNameIfNeeded(x) } - override fun visitFunction(x: JsFunction?) { } + override fun visitFunction(x: JsFunction) { } private fun addNameIfNeeded(hasName: HasName?) { val name = hasName?.getName() diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/PropertyCollector.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/PropertyCollector.kt index b9f5bd6feac..664950f0108 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/PropertyCollector.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/collectors/PropertyCollector.kt @@ -24,14 +24,14 @@ import java.util.IdentityHashMap class PropertyCollector : RecursiveJsVisitor() { public val properties: IdentityHashMap = IdentityHashMap() - override fun visitPropertyInitializer(x: JsPropertyInitializer?) { + override fun visitPropertyInitializer(x: JsPropertyInitializer) { super.visitPropertyInitializer(x) - val label = x?.getLabelExpr() as? JsNameRef + val label = x.getLabelExpr() as? JsNameRef val name = label?.getName() if (name == null) return - val value = x?.getValueExpr() + val value = x.getValueExpr() properties[name] = value } } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/sideEffectUtils.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/sideEffectUtils.kt index fae7a17bc73..c79cab3746b 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/sideEffectUtils.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/util/sideEffectUtils.kt @@ -46,7 +46,7 @@ private open class SideEffectVisitor() : RecursiveJsVisitor() { public var sideEffectFree: Boolean = true protected set - override fun visitElement(node: JsNode?) { + override fun visitElement(node: JsNode) { sideEffectFree = sideEffectFree && isSideEffectFree(node) if (sideEffectFree) { @@ -54,7 +54,7 @@ private open class SideEffectVisitor() : RecursiveJsVisitor() { } } - protected open fun isSideEffectFree(node: JsNode?): Boolean = + protected open fun isSideEffectFree(node: JsNode): Boolean = when (node) { is JsValueLiteral, is JsConditional, @@ -70,7 +70,7 @@ private open class SideEffectVisitor() : RecursiveJsVisitor() { } private class NeedToAliasVisitor() : SideEffectVisitor() { - override fun isSideEffectFree(node: JsNode?): Boolean = + override fun isSideEffectFree(node: JsNode): Boolean = when (node) { is JsThisRef, is JsConditional, diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/CallCounter.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/CallCounter.java index 0b181e175d2..9f88fc7152d 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/CallCounter.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/utils/CallCounter.java @@ -56,7 +56,7 @@ public class CallCounter extends RecursiveJsVisitor { } @Override - public void visitInvocation(JsInvocation invocation) { + public void visitInvocation(@NotNull JsInvocation invocation) { super.visitInvocation(invocation); JsExpression qualifier = invocation.getQualifier(); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/JsSourceGenerationVisitor.java b/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/JsSourceGenerationVisitor.java index 3de2602e08f..cfc6969d3b4 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/JsSourceGenerationVisitor.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/sourceMap/JsSourceGenerationVisitor.java @@ -20,6 +20,7 @@ import com.google.dart.compiler.backend.js.JsToStringGenerationVisitor; import com.google.dart.compiler.backend.js.ast.*; import com.google.dart.compiler.util.TextOutput; import com.intellij.util.SmartList; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -37,7 +38,7 @@ public class JsSourceGenerationVisitor extends JsToStringGenerationVisitor imple } @Override - public void visitProgramFragment(JsProgramFragment x) { + public void visitProgramFragment(@NotNull JsProgramFragment x) { x.acceptChildren(this); } @@ -87,7 +88,7 @@ public class JsSourceGenerationVisitor extends JsToStringGenerationVisitor imple } @Override - public void visitProgram(JsProgram program) { + public void visitProgram(@NotNull JsProgram program) { program.acceptChildren(this); if (sourceMapBuilder != null) { sourceMapBuilder.addLink(); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/inlineUtils.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/inlineUtils.kt index 9793fd7d31f..22f57fc34e6 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/inlineUtils.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/inlineUtils.kt @@ -51,9 +51,7 @@ fun setInlineCallMetadata( val name = context.aliasedName(descriptor) val visitor = object : RecursiveJsVisitor() { - override fun visitInvocation(invocation: JsInvocation?) { - if (invocation == null) return - + override fun visitInvocation(invocation: JsInvocation) { super.visitInvocation(invocation) if (name == invocation.name) {