Fix generation of JS source maps for long literals
This commit is contained in:
@@ -90,6 +90,12 @@ public class JsLineNumberTestGenerated extends AbstractJsLineNumberTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("longLiteral.kt")
|
||||||
|
public void testLongLiteral() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/longLiteral.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("multipleReferences.kt")
|
@TestMetadata("multipleReferences.kt")
|
||||||
public void testMultipleReferences() throws Exception {
|
public void testMultipleReferences() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/multipleReferences.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/multipleReferences.kt");
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public final class Translation {
|
|||||||
if (type != null) {
|
if (type != null) {
|
||||||
if (KotlinBuiltIns.isLong(type) || (KotlinBuiltIns.isInt(type) && expression instanceof KtUnaryExpression)) {
|
if (KotlinBuiltIns.isLong(type) || (KotlinBuiltIns.isInt(type) && expression instanceof KtUnaryExpression)) {
|
||||||
JsExpression constantResult = translateConstant(compileTimeValue, expression, context);
|
JsExpression constantResult = translateConstant(compileTimeValue, expression, context);
|
||||||
if (constantResult != null) return constantResult;
|
if (constantResult != null) return constantResult.source(expression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -186,7 +186,7 @@ public final class Translation {
|
|||||||
@NotNull JsBlock block
|
@NotNull JsBlock block
|
||||||
) {
|
) {
|
||||||
JsNode jsNode = translateExpression(expression, context, block);
|
JsNode jsNode = translateExpression(expression, context, block);
|
||||||
if (jsNode instanceof JsExpression) {
|
if (jsNode instanceof JsExpression) {
|
||||||
KotlinType expressionType = context.bindingContext().getType(expression);
|
KotlinType expressionType = context.bindingContext().getType(expression);
|
||||||
return unboxIfNeeded((JsExpression) jsNode, expressionType != null && KotlinBuiltIns.isCharOrNullableChar(expressionType));
|
return unboxIfNeeded((JsExpression) jsNode, expressionType != null && KotlinBuiltIns.isCharOrNullableChar(expressionType));
|
||||||
}
|
}
|
||||||
@@ -200,7 +200,7 @@ public final class Translation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
block.getStatements().add(convertToStatement(jsNode));
|
block.getStatements().add(convertToStatement(jsNode));
|
||||||
return new JsNullLiteral();
|
return new JsNullLiteral().source(expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fun foo() {
|
||||||
|
println(
|
||||||
|
23L)
|
||||||
|
println(
|
||||||
|
0L)
|
||||||
|
}
|
||||||
|
|
||||||
|
// LINES: 2 3 4 5
|
||||||
Reference in New Issue
Block a user