Drop JsConfig#inlineEnabled flag
Use CommonConfigurationKeys#DISABLE_INLINE flag (moved from JVMConfigurationKeys) in CompilerConfiguration instead, similarly to the JVM compiler
This commit is contained in:
@@ -47,7 +47,6 @@ public abstract class JsConfig {
|
||||
private final Project project;
|
||||
@NotNull
|
||||
private final CompilerConfiguration configuration;
|
||||
private final boolean inlineEnabled;
|
||||
@NotNull
|
||||
private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
||||
@NotNull
|
||||
@@ -76,7 +75,6 @@ public abstract class JsConfig {
|
||||
@NotNull String moduleId,
|
||||
@NotNull EcmaVersion ecmaVersion,
|
||||
boolean sourcemap,
|
||||
boolean inlineEnabled,
|
||||
boolean metaInfo,
|
||||
boolean kjsm
|
||||
) {
|
||||
@@ -85,11 +83,15 @@ public abstract class JsConfig {
|
||||
this.target = ecmaVersion;
|
||||
this.moduleId = moduleId;
|
||||
this.sourcemap = sourcemap;
|
||||
this.inlineEnabled = inlineEnabled;
|
||||
this.metaInfo = metaInfo;
|
||||
this.kjsm = kjsm;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public CompilerConfiguration getConfiguration() {
|
||||
return configuration;
|
||||
}
|
||||
|
||||
public boolean isSourcemap() {
|
||||
return sourcemap;
|
||||
}
|
||||
@@ -102,10 +104,6 @@ public abstract class JsConfig {
|
||||
return kjsm;
|
||||
}
|
||||
|
||||
public boolean isInlineEnabled() {
|
||||
return inlineEnabled;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Project getProject() {
|
||||
return project;
|
||||
|
||||
@@ -70,12 +70,11 @@ public class LibrarySourcesConfig extends JsConfig {
|
||||
@NotNull List<String> files,
|
||||
@NotNull EcmaVersion ecmaVersion,
|
||||
boolean sourceMap,
|
||||
boolean inlineEnabled,
|
||||
boolean isUnitTestConfig,
|
||||
boolean metaInfo,
|
||||
boolean kjsm
|
||||
) {
|
||||
super(project, configuration, moduleId, ecmaVersion, sourceMap, inlineEnabled, metaInfo, kjsm);
|
||||
super(project, configuration, moduleId, ecmaVersion, sourceMap, metaInfo, kjsm);
|
||||
this.files = files;
|
||||
this.isUnitTestConfig = isUnitTestConfig;
|
||||
}
|
||||
@@ -197,7 +196,6 @@ public class LibrarySourcesConfig extends JsConfig {
|
||||
private final List<String> files;
|
||||
private EcmaVersion ecmaVersion = EcmaVersion.defaultVersion();
|
||||
boolean sourceMap = false;
|
||||
boolean inlineEnabled = true;
|
||||
boolean isUnitTestConfig = false;
|
||||
boolean metaInfo = false;
|
||||
boolean kjsm = false;
|
||||
@@ -224,11 +222,6 @@ public class LibrarySourcesConfig extends JsConfig {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder inlineEnabled(boolean inlineEnabled) {
|
||||
this.inlineEnabled = inlineEnabled;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder isUnitTestConfig(boolean isUnitTestConfig) {
|
||||
this.isUnitTestConfig = isUnitTestConfig;
|
||||
return this;
|
||||
@@ -246,7 +239,7 @@ public class LibrarySourcesConfig extends JsConfig {
|
||||
|
||||
public JsConfig build() {
|
||||
return new LibrarySourcesConfig(
|
||||
project, configuration, moduleId, files, ecmaVersion, sourceMap, inlineEnabled, isUnitTestConfig, metaInfo, kjsm
|
||||
project, configuration, moduleId, files, ecmaVersion, sourceMap, isUnitTestConfig, metaInfo, kjsm
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector;
|
||||
import org.jetbrains.kotlin.cli.common.output.outputUtils.OutputUtilsKt;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys;
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
||||
import org.jetbrains.kotlin.js.JavaScript;
|
||||
@@ -83,8 +84,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
|
||||
public static final String TEST_MODULE = "JS_TESTS";
|
||||
public static final String TEST_PACKAGE = "foo";
|
||||
public static final String TEST_FUNCTION = "box";
|
||||
public static final String NO_INLINE_DIRECTIVE = "// NO_INLINE";
|
||||
public boolean isInlineEnabled = true;
|
||||
private static final String NO_INLINE_DIRECTIVE = "// NO_INLINE";
|
||||
|
||||
@NotNull
|
||||
private String relativePathToTestDir = "";
|
||||
@@ -114,7 +114,6 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
|
||||
File outDir = new File(getOutputPath());
|
||||
|
||||
KotlinTestUtils.mkdirs(outDir);
|
||||
isInlineEnabled = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -326,13 +325,15 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
|
||||
@NotNull String moduleId,
|
||||
@NotNull EcmaVersion ecmaVersion,
|
||||
@Nullable List<String> libraries,
|
||||
List<KtFile> jetFiles
|
||||
@NotNull List<KtFile> files
|
||||
) {
|
||||
for (KtFile file : jetFiles) {
|
||||
CompilerConfiguration configuration = getEnvironment().getConfiguration().copy();
|
||||
|
||||
for (KtFile file : files) {
|
||||
String text = file.getText();
|
||||
|
||||
if (isDirectiveDefined(text, NO_INLINE_DIRECTIVE)) {
|
||||
isInlineEnabled = false;
|
||||
configuration.put(CommonConfigurationKeys.DISABLE_INLINE, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -342,10 +343,9 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
|
||||
librariesWithStdlib.addAll(libraries);
|
||||
}
|
||||
|
||||
return new LibrarySourcesConfig.Builder(project, getEnvironment().getConfiguration(), moduleId, librariesWithStdlib)
|
||||
return new LibrarySourcesConfig.Builder(project, configuration, moduleId, librariesWithStdlib)
|
||||
.ecmaVersion(ecmaVersion)
|
||||
.sourceMap(shouldGenerateSourceMap())
|
||||
.inlineEnabled(isInlineEnabled)
|
||||
.isUnitTestConfig(shouldBeTranslateAsUnitTestClass())
|
||||
.metaInfo(shouldGenerateMetaInfo())
|
||||
.build();
|
||||
|
||||
+3
-2
@@ -20,6 +20,7 @@ import com.google.dart.compiler.backend.js.ast.*;
|
||||
import com.google.gwt.dev.js.ThrowExceptionOnErrorReporter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.js.parser.ParserUtilsKt;
|
||||
import org.jetbrains.kotlin.js.resolve.diagnostics.JsCallChecker;
|
||||
@@ -35,8 +36,8 @@ import org.jetbrains.kotlin.resolve.inline.InlineUtil;
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.kotlin.js.resolve.diagnostics.JsCallChecker.isJsCall;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.PsiUtils.getFunctionDescriptor;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.InlineUtils.setInlineCallMetadata;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.PsiUtils.getFunctionDescriptor;
|
||||
import static org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator.getConstant;
|
||||
|
||||
public final class CallExpressionTranslator extends AbstractCallExpressionTranslator {
|
||||
@@ -63,7 +64,7 @@ public final class CallExpressionTranslator extends AbstractCallExpressionTransl
|
||||
}
|
||||
|
||||
public static boolean shouldBeInlined(@NotNull KtCallExpression expression, @NotNull TranslationContext context) {
|
||||
if (!context.getConfig().isInlineEnabled()) return false;
|
||||
if (context.getConfig().getConfiguration().getBoolean(CommonConfigurationKeys.DISABLE_INLINE)) return false;
|
||||
|
||||
CallableDescriptor descriptor = getFunctionDescriptor(expression, context);
|
||||
return shouldBeInlined(descriptor);
|
||||
|
||||
Reference in New Issue
Block a user