KT-4610 Can't run a Kotlin class against class path of a different module
#KT-4610 Fixed
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user