From cb5c433a66637654742945e6c9ebc4de1d543ecf Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 14 Jul 2011 20:35:46 +0200 Subject: [PATCH] Optimize type info creation for constructor stubs --- .../com/intellij/psi/impl/cache/TypeInfo.java | 21 ++++++++++--------- .../java/stubs/JavaMethodElementType.java | 3 +-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/cache/TypeInfo.java b/java/java-impl/src/com/intellij/psi/impl/cache/TypeInfo.java index 0b497a6fddf0..f741ad597278 100644 --- a/java/java-impl/src/com/intellij/psi/impl/cache/TypeInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/cache/TypeInfo.java @@ -131,6 +131,11 @@ public class TypeInfo { return new TypeInfo(StringRef.fromString(text), (byte)arrayCount, isEllipsis, list); } + @NotNull + public static TypeInfo createConstructorType() { + return NULL; + } + @NotNull public static TypeInfo create(final LighterAST tree, final LighterASTNode element, final StubElement parentStub) { final String text; @@ -153,18 +158,14 @@ public class TypeInfo { } } - if (typeElement == null) { - if (element.getTokenType() == JavaElementType.METHOD) { - return NULL; // constructor - } - else if (element.getTokenType() == JavaElementType.FIELD) { - final List fields = LightTreeUtil.getChildrenOfType(tree, tree.getParent(element), JavaElementType.FIELD); - final int idx = fields.indexOf(element); - for (int i = idx - 1; i >= 0 && typeElement == null; i--) { // int i, j - typeElement = LightTreeUtil.firstChildOfType(tree, fields.get(i), JavaElementType.TYPE); - } + if (typeElement == null && element.getTokenType() == JavaElementType.FIELD) { + final List fields = LightTreeUtil.getChildrenOfType(tree, tree.getParent(element), JavaElementType.FIELD); + final int idx = fields.indexOf(element); + for (int i = idx - 1; i >= 0 && typeElement == null; i--) { // int i, j + typeElement = LightTreeUtil.firstChildOfType(tree, fields.get(i), JavaElementType.TYPE); } } + assert typeElement != null : element + " in " + parentStub; isEllipsis = (LightTreeUtil.firstChildOfType(tree, typeElement, JavaTokenType.ELLIPSIS) != null); diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/JavaMethodElementType.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/JavaMethodElementType.java index bf4819fbca3a..e355ba4478ad 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/JavaMethodElementType.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/JavaMethodElementType.java @@ -94,8 +94,6 @@ public abstract class JavaMethodElementType extends JavaStubElementType