From 7b63dd987c426e0c3607ebd0d9341fe6092aa003 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Wed, 3 Jun 2015 16:15:12 +0300 Subject: [PATCH] Workaround for bug in Android Plugin: it generates LightFields for files starting from '.' (ex. .DS_Store file) #KT-6625 Fixed --- .../kotlin/load/java/structure/impl/JavaClassImpl.java | 9 ++++++++- .../impl/JavaElementCollectionFromPsiArrayUtil.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaClassImpl.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaClassImpl.java index 6cb42560e0c..57db2aef037 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaClassImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaClassImpl.java @@ -109,7 +109,14 @@ public class JavaClassImpl extends JavaClassifierImpl implements JavaC @Override @NotNull public Collection getFields() { - return fields(getPsi().getFields()); + // ex. Android plugin generates LightFields for resources started from '.' (.DS_Store file etc) + return fields(KotlinPackage.filter(getPsi().getFields(), new Function1() { + @Override + public Boolean invoke(PsiField field) { + String name = field.getName(); + return name != null && Name.isValidIdentifier(name); + } + })); } @Override diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java index cfbb28d6fec..f4767910b58 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java @@ -183,7 +183,7 @@ public class JavaElementCollectionFromPsiArrayUtil { } @NotNull - public static Collection fields(@NotNull PsiField[] fields) { + public static Collection fields(@NotNull Iterable fields) { return convert(fields, Factories.FIELDS); }