Do not include files that contains only top level classes or objects to LightClassForPackage

This commit is contained in:
Natalia Ukhorskaya
2015-04-17 16:46:58 +03:00
parent f575890732
commit 907f0db7be
2 changed files with 6 additions and 6 deletions
@@ -199,10 +199,11 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport
public Collection<PsiClass> getPackageClasses(@NotNull FqName packageFqName, @NotNull GlobalSearchScope scope) { public Collection<PsiClass> getPackageClasses(@NotNull FqName packageFqName, @NotNull GlobalSearchScope scope) {
Collection<JetFile> filesInPackage = findFilesForPackage(packageFqName, scope); Collection<JetFile> filesInPackage = findFilesForPackage(packageFqName, scope);
if (PackagePartClassUtils.getPackageFilesWithCallables(filesInPackage).isEmpty()) return Collections.emptyList(); List<JetFile> filesWithCallables = PackagePartClassUtils.getPackageFilesWithCallables(filesInPackage);
if (filesWithCallables.isEmpty()) return Collections.emptyList();
//noinspection RedundantTypeArguments //noinspection RedundantTypeArguments
return UtilsPackage.<PsiClass>emptyOrSingletonList(KotlinLightClassForPackage.Factory.create(psiManager, packageFqName, scope, filesInPackage)); return UtilsPackage.<PsiClass>emptyOrSingletonList(KotlinLightClassForPackage.Factory.create(psiManager, packageFqName, scope, filesWithCallables));
} }
@NotNull @NotNull
@@ -270,9 +270,8 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport
List<PsiClass> result = new ArrayList<PsiClass>(); List<PsiClass> result = new ArrayList<PsiClass>();
List<KotlinLightPackageClassInfo> packageClassesInfos = findPackageClassesInfos(packageFqName, scope); List<KotlinLightPackageClassInfo> packageClassesInfos = findPackageClassesInfos(packageFqName, scope);
for (KotlinLightPackageClassInfo info : packageClassesInfos) { for (KotlinLightPackageClassInfo info : packageClassesInfos) {
Collection<JetFile> files = info.getFiles(); List<JetFile> files = PackagePartClassUtils.getPackageFilesWithCallables(info.getFiles());
List<JetFile> filesWithCallables = PackagePartClassUtils.getPackageFilesWithCallables(files); if (files.isEmpty()) continue;
if (filesWithCallables.isEmpty()) continue;
IdeaModuleInfo moduleInfo = info.getModuleInfo(); IdeaModuleInfo moduleInfo = info.getModuleInfo();
if (moduleInfo instanceof ModuleSourceInfo) { if (moduleInfo instanceof ModuleSourceInfo) {
@@ -289,7 +288,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport
} }
} }
else { else {
PsiClass clsClass = getLightClassForDecompiledPackage(packageFqName, filesWithCallables); PsiClass clsClass = getLightClassForDecompiledPackage(packageFqName, files);
if (clsClass != null) { if (clsClass != null) {
result.add(clsClass); result.add(clsClass);
} }