JS frontend: suppress UNUSED_PARAM for native declarations.

#KT-2141 Fixed
This commit is contained in:
Zalim Bashorov
2014-10-23 15:28:57 +04:00
parent 624f5c4c34
commit c8556ec1f7
7 changed files with 85 additions and 35 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.jet.cli.js;
import com.google.common.base.Joiner;
import com.google.common.base.Predicates;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
@@ -43,10 +44,11 @@ import org.jetbrains.jet.cli.common.messages.MessageCollector;
import org.jetbrains.jet.cli.common.output.outputUtils.OutputUtilsPackage;
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.config.CommonConfigurationKeys;
import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.config.Services;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.DiagnosticsWithSuppression;
import org.jetbrains.k2js.analyze.SuppressUnusedParameterForJsNative;
import org.jetbrains.k2js.analyze.TopDownAnalyzerFacadeForJS;
import org.jetbrains.k2js.config.*;
import org.jetbrains.k2js.facade.MainCallParameters;
@@ -91,6 +93,9 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
CompileEnvironmentUtil.addSourceFilesCheckingForDuplicates(configuration, arguments.freeArgs);
JetCoreEnvironment environmentForJS = JetCoreEnvironment.createForProduction(rootDisposable, configuration);
Extensions.getRootArea()
.getExtensionPoint(DiagnosticsWithSuppression.SuppressStringProvider.EP_NAME)
.registerExtension(new SuppressUnusedParameterForJsNative());
Project project = environmentForJS.getProject();
List<JetFile> sourcesFiles = environmentForJS.getSourceFiles();
@@ -53,6 +53,7 @@ import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.lang.parsing.JetParserDefinition;
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.DiagnosticsWithSuppression;
import org.jetbrains.jet.lang.resolve.kotlin.KotlinBinaryClassCache;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory;
import org.jetbrains.jet.lang.resolve.lazy.declarations.CliDeclarationProviderFactoryService;
@@ -64,6 +65,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import static com.intellij.core.CoreApplicationEnvironment.registerApplicationExtensionPoint;
import static org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity.ERROR;
import static org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity.WARNING;
@@ -139,12 +141,19 @@ public class JetCoreEnvironment {
private static JavaCoreApplicationEnvironment createApplicationEnvironment(@NotNull Disposable parentDisposable) {
JavaCoreApplicationEnvironment applicationEnvironment = new JavaCoreApplicationEnvironment(parentDisposable);
registerApplicationExtensionPointsForCLI();
registerApplicationServicesForCLI(applicationEnvironment);
registerApplicationServices(applicationEnvironment);
return applicationEnvironment;
}
private static void registerApplicationExtensionPointsForCLI() {
registerApplicationExtensionPoint(DiagnosticsWithSuppression.SuppressStringProvider.EP_NAME,
DiagnosticsWithSuppression.SuppressStringProvider.class);
}
private static void registerApplicationServicesForCLI(@NotNull JavaCoreApplicationEnvironment applicationEnvironment) {
// ability to get text from annotations xml files
applicationEnvironment.registerFileType(PlainTextFileType.INSTANCE, "xml");