diff options
author | Ben Gruver <bgruv@google.com> | 2015-04-03 21:29:07 -0700 |
---|---|---|
committer | Ben Gruver <bgruv@google.com> | 2015-04-03 21:29:07 -0700 |
commit | 660d4b5fd946c06cd039fc4567128ae2a4d72d09 (patch) | |
tree | 212b1b3275f7e22218d98dd7a03c566a702722ab | |
parent | 4bc2334c3931ec063110bfeb5396a5078afbf82b (diff) | |
download | smali-660d4b5fd946c06cd039fc4567128ae2a4d72d09.tar.gz |
Workaround for issue with fake Object field type during indexing
-rw-r--r-- | smalidea/src/main/java/org/jf/smalidea/psi/stub/element/SmaliFieldElementType.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/smalidea/src/main/java/org/jf/smalidea/psi/stub/element/SmaliFieldElementType.java b/smalidea/src/main/java/org/jf/smalidea/psi/stub/element/SmaliFieldElementType.java index c2fc2aa1..44e1d884 100644 --- a/smalidea/src/main/java/org/jf/smalidea/psi/stub/element/SmaliFieldElementType.java +++ b/smalidea/src/main/java/org/jf/smalidea/psi/stub/element/SmaliFieldElementType.java @@ -32,6 +32,8 @@ package org.jf.smalidea.psi.stub.element; import com.intellij.lang.ASTNode; +import com.intellij.openapi.project.IndexNotReadyException; +import com.intellij.psi.PsiTypeElement; import com.intellij.psi.stubs.IndexSink; import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubInputStream; @@ -62,7 +64,20 @@ public class SmaliFieldElementType extends SmaliStubElementType<SmaliFieldStub, } @Override public SmaliFieldStub createStub(@NotNull SmaliField psi, StubElement parentStub) { - return new SmaliFieldStub(parentStub, psi.getName(), psi.getType().getCanonicalText()); + try { + String fieldType; + PsiTypeElement typeElement = psi.getTypeElement(); + if (typeElement != null) { + fieldType = typeElement.getType().getCanonicalText(); + } else { + fieldType = "java.lang.Object"; + } + + return new SmaliFieldStub(parentStub, psi.getName(), fieldType); + } catch (IndexNotReadyException ex) { + System.out.println(psi.getName()); + throw ex; + } } @Override |