KT-4610 Can't run a Kotlin class against class path of a different module

#KT-4610 Fixed
This commit is contained in:
Nikolay Krasko
2014-02-25 12:02:29 +04:00
parent 7a2321460d
commit 1c02002e02
@@ -241,11 +241,11 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
Module classModule = ModuleUtilCore.findModuleForPsiElement(mainFun);
if (classModule == null) classModule = module;
ModuleFileIndex fileIndex = ModuleRootManager.getInstance(classModule).getFileIndex();
VirtualFile virtualFileForMainFun = mainFun.getContainingFile().getVirtualFile();
if (virtualFileForMainFun == null) throw new CantRunException(String.format("Top-level function 'main' not found in package '%s'", packageFqName));
ModuleFileIndex fileIndex = ModuleRootManager.getInstance(classModule).getFileIndex();
if (fileIndex.isInSourceContent(virtualFileForMainFun)) {
if (fileIndex.isInTestSourceContent(virtualFileForMainFun)) {
return JavaParameters.JDK_AND_CLASSES_AND_TESTS;
@@ -266,8 +266,8 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
@Nullable
private JetNamedFunction findMainFun(@NotNull Module module, @NotNull FqName packageFqName) throws CantRunException {
String mainFunFqName = packageFqName.child(Name.identifier("main")).asString();
Collection<JetNamedFunction> mainFunctions =
JetTopLevelFunctionsFqnNameIndex.getInstance().get(mainFunFqName, module.getProject(), module.getModuleScope(true));
Collection<JetNamedFunction> mainFunctions = JetTopLevelFunctionsFqnNameIndex.getInstance().get(
mainFunFqName, module.getProject(), module.getModuleRuntimeScope(true));
for (JetNamedFunction function : mainFunctions) {
if (JetMainDetector.isMain(function)) {
return function;