aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gruver <bgruv@google.com>2015-04-03 21:29:07 -0700
committerBen Gruver <bgruv@google.com>2015-04-03 21:29:07 -0700
commit660d4b5fd946c06cd039fc4567128ae2a4d72d09 (patch)
tree212b1b3275f7e22218d98dd7a03c566a702722ab
parent4bc2334c3931ec063110bfeb5396a5078afbf82b (diff)
downloadsmali-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.java17
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