Supported cases of removing source files from package fragment.
This commit is contained in:
+13
-5
@@ -51,6 +51,7 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCache;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.plugin.MainFunctionDetector;
|
||||
import org.jetbrains.jet.utils.KotlinPaths;
|
||||
@@ -58,6 +59,7 @@ import org.jetbrains.jet.utils.KotlinPaths;
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -129,7 +131,7 @@ public class KotlinToJVMBytecodeCompiler {
|
||||
}
|
||||
}
|
||||
);
|
||||
GenerationState generationState = generate(environment, exhaust, jetFiles);
|
||||
GenerationState generationState = generate(environment, exhaust, jetFiles, module.getModuleName());
|
||||
outputFiles.put(module, generationState.getFactory());
|
||||
}
|
||||
}
|
||||
@@ -276,7 +278,7 @@ public class KotlinToJVMBytecodeCompiler {
|
||||
|
||||
exhaust.throwIfError();
|
||||
|
||||
return generate(environment, exhaust, environment.getSourceFiles());
|
||||
return generate(environment, exhaust, environment.getSourceFiles(), null);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -320,17 +322,23 @@ public class KotlinToJVMBytecodeCompiler {
|
||||
private static GenerationState generate(
|
||||
@NotNull JetCoreEnvironment environment,
|
||||
@NotNull AnalyzeExhaust exhaust,
|
||||
@NotNull List<JetFile> sourceFiles
|
||||
@NotNull List<JetFile> sourceFiles,
|
||||
@Nullable String moduleId
|
||||
) {
|
||||
CompilerConfiguration configuration = environment.getConfiguration();
|
||||
File incrementalCacheDir = configuration.get(JVMConfigurationKeys.INCREMENTAL_CACHE_BASE_DIR);
|
||||
Collection<FqName> packagesWithRemovedFiles =
|
||||
incrementalCacheDir == null || moduleId == null
|
||||
? null
|
||||
: new IncrementalCache(incrementalCacheDir).getPackagesWithRemovedFiles(moduleId, environment.getSourceFiles());
|
||||
GenerationState generationState = new GenerationState(
|
||||
environment.getProject(), ClassBuilderFactories.BINARIES, Progress.DEAF,
|
||||
exhaust.getModuleDescriptor(), exhaust.getBindingContext(), sourceFiles,
|
||||
configuration.get(JVMConfigurationKeys.GENERATE_NOT_NULL_ASSERTIONS, false),
|
||||
configuration.get(JVMConfigurationKeys.GENERATE_NOT_NULL_PARAMETER_ASSERTIONS, false),
|
||||
GenerationState.GenerateClassFilter.GENERATE_ALL,
|
||||
configuration.get(JVMConfigurationKeys.ENABLE_INLINE, InlineCodegenUtil.DEFAULT_INLINE_FLAG)
|
||||
);
|
||||
configuration.get(JVMConfigurationKeys.ENABLE_INLINE, InlineCodegenUtil.DEFAULT_INLINE_FLAG),
|
||||
packagesWithRemovedFiles);
|
||||
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION);
|
||||
return generationState;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user