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:
Alexander Udalov
2016-05-23 19:01:45 +03:00
parent 6889bdbef8
commit b65980f3b7
13 changed files with 40 additions and 40 deletions
@@ -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();
@@ -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);