diff --git a/compiler/testData/cli/js/diagnosticForClassLiteral.args b/compiler/testData/cli/js/diagnosticForClassLiteral.args new file mode 100644 index 00000000000..baab1ea5276 --- /dev/null +++ b/compiler/testData/cli/js/diagnosticForClassLiteral.args @@ -0,0 +1,4 @@ +$TESTDATA_DIR$/diagnosticForClassLiteral.kt +-no-stdlib +-output +$TEMP_DIR$/out.js diff --git a/compiler/testData/cli/js/diagnosticForClassLiteral.kt b/compiler/testData/cli/js/diagnosticForClassLiteral.kt new file mode 100644 index 00000000000..42eaa282d84 --- /dev/null +++ b/compiler/testData/cli/js/diagnosticForClassLiteral.kt @@ -0,0 +1,7 @@ +package foo + +class A + +fun test() { + A::class +} diff --git a/compiler/testData/cli/js/diagnosticForClassLiteral.out b/compiler/testData/cli/js/diagnosticForClassLiteral.out new file mode 100644 index 00000000000..b9b117af56e --- /dev/null +++ b/compiler/testData/cli/js/diagnosticForClassLiteral.out @@ -0,0 +1,3 @@ +WARNING: compiler/testData/cli/js/diagnosticForClassLiteral.kt: (6, 5) The expression is unused +ERROR: compiler/testData/cli/js/diagnosticForClassLiteral.kt: (6, 6) Reflection types can't be loaded. Please ensure that you have Kotlin Runtime in your classpath +COMPILATION_ERROR diff --git a/compiler/tests/org/jetbrains/kotlin/cli/KotlincExecutableTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/cli/KotlincExecutableTestGenerated.java index b235bd418bf..b7d96a2e75c 100644 --- a/compiler/tests/org/jetbrains/kotlin/cli/KotlincExecutableTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/cli/KotlincExecutableTestGenerated.java @@ -183,6 +183,12 @@ public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTes JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/cli/js"), Pattern.compile("^(.+)\\.args$"), false); } + @TestMetadata("diagnosticForClassLiteral.args") + public void testDiagnosticForClassLiteral() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/js/diagnosticForClassLiteral.args"); + doJsTest(fileName); + } + @TestMetadata("diagnosticForUnhandledElements.args") public void testDiagnosticForUnhandledElements() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/cli/js/diagnosticForUnhandledElements.args"); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java index d5947e0ff6b..5c5854a04d1 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java @@ -183,11 +183,6 @@ public final class ExpressionVisitor extends TranslatorVisitor { return newVar(name, initializer).source(expression); } - @Override - public JsNode visitClassLiteralExpression(@NotNull JetClassLiteralExpression expression, @NotNull TranslationContext context) { - throw new UnsupportedOperationException("Class literals are not yet supported: " + expression.getText()); - } - @Override @NotNull public JsNode visitCallableReferenceExpression(@NotNull JetCallableReferenceExpression expression, @NotNull TranslationContext context) {