JS: remove unused imports from generated JS. Fix KT-14748
This commit is contained in:
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.js.config.JsConfig;
|
||||
import org.jetbrains.kotlin.js.coroutine.CoroutineTransformer;
|
||||
import org.jetbrains.kotlin.js.facade.exceptions.TranslationException;
|
||||
import org.jetbrains.kotlin.js.inline.JsInliner;
|
||||
import org.jetbrains.kotlin.js.inline.clean.RemoveUnusedImportsKt;
|
||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext;
|
||||
import org.jetbrains.kotlin.js.translate.general.Translation;
|
||||
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
|
||||
@@ -88,6 +89,7 @@ public final class K2JSTranslator {
|
||||
|
||||
CoroutineTransformer coroutineTransformer = new CoroutineTransformer(program);
|
||||
coroutineTransformer.accept(program);
|
||||
RemoveUnusedImportsKt.removeUnusedImports(program);
|
||||
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled();
|
||||
if (hasError(diagnostics)) return new TranslationResult.Fail(diagnostics);
|
||||
|
||||
|
||||
@@ -48,7 +48,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
||||
import java.util.*;
|
||||
|
||||
import static org.jetbrains.kotlin.js.config.LibrarySourcesConfig.UNKNOWN_EXTERNAL_MODULE_NAME;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.AnnotationsUtils.getNameForAnnotatedObject;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.AnnotationsUtils.isLibraryObject;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.AnnotationsUtils.isNativeObject;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.pureFqn;
|
||||
@@ -403,6 +402,7 @@ public final class StaticContext {
|
||||
// TODO: remove prefix when problem with scopes is solved
|
||||
|
||||
JsName result = rootFunction.getScope().declareFreshName("imported$" + suggestedName);
|
||||
MetadataProperties.setImported(result, true);
|
||||
importStatements.add(JsAstUtils.newVar(result, declaration));
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
package lib
|
||||
|
||||
inline fun foo(f: () -> String) = f()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: main.kt
|
||||
// PROPERTY_NOT_READ_FROM: foo_6r51u9$
|
||||
fun box() = lib.foo { "OK" }
|
||||
Reference in New Issue
Block a user