JS: fixed nullability issues after conversion

This commit is contained in:
Alexey Tsvetkov
2015-03-26 13:56:38 +03:00
parent 1f705eb77a
commit 24aa19bd49
14 changed files with 110 additions and 104 deletions
@@ -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) {
}
/**
@@ -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) {
}
}
@@ -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.");
}
}
@@ -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;
}
@@ -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("<JsProgram>");
}
@Override
public void visitProgramFragment(JsProgramFragment x) {
public void visitProgramFragment(@NotNull JsProgramFragment x) {
p.print("<JsProgramFragment>");
}
@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();
@@ -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 <T : JsNode> accept(node: T) {
node.accept(this)
public open fun <T : JsNode?> accept(node: T) {
node?.accept(this)
}
public fun <T : JsNode> acceptList(collection: List<T>) {
@@ -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);
}
}
@@ -23,7 +23,7 @@ import java.util.ArrayList
class InstanceCollector<T : JsNode>(val klass: Class<T>) : RecursiveJsVisitor() {
public val collected: MutableList<T> = ArrayList()
override fun visitElement(node: JsNode?) {
override fun visitElement(node: JsNode) {
if (klass.isInstance(node)) {
collected.add(klass.cast(node)!!)
}
@@ -28,12 +28,12 @@ import java.util.HashMap
class NameCollector(private val scope: JsScope) : RecursiveJsVisitor() {
public val names: MutableMap<String, JsName> = 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()
@@ -24,14 +24,14 @@ import java.util.IdentityHashMap
class PropertyCollector : RecursiveJsVisitor() {
public val properties: IdentityHashMap<JsName, JsExpression> = 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
}
}
@@ -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,
@@ -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();
@@ -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();
@@ -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) {