diff options
Diffstat (limited to 'java/java-psi-impl/src/com')
7 files changed, 45 insertions, 21 deletions
diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java index 914a30024aef..c61659752eec 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java @@ -657,6 +657,11 @@ public class JavaDocInfoGenerator { } buffer.append(" "); } + } else { + buffer.append("<font color=red>"); + buffer.append(annotation.getText()); + buffer.append("</font>"); + buffer.append(" "); } } } diff --git a/java/java-psi-impl/src/com/intellij/externalSystem/JavaProjectDataService.java b/java/java-psi-impl/src/com/intellij/externalSystem/JavaProjectDataService.java index 05132a8b7734..cc9ff3bd7a6c 100644 --- a/java/java-psi-impl/src/com/intellij/externalSystem/JavaProjectDataService.java +++ b/java/java-psi-impl/src/com/intellij/externalSystem/JavaProjectDataService.java @@ -48,11 +48,14 @@ public class JavaProjectDataService implements ProjectDataService<JavaProjectDat @Override public void importData(@NotNull Collection<DataNode<JavaProjectData>> toImport, @NotNull Project project, boolean synchronous) { + if (!ExternalSystemApiUtil.isNewProjectConstruction()) { + return; + } if (toImport.size() != 1) { throw new IllegalArgumentException(String.format("Expected to get a single project but got %d: %s", toImport.size(), toImport)); } JavaProjectData projectData = toImport.iterator().next().getData(); - + // JDK. JavaSdkVersion version = projectData.getJdkVersion(); JavaSdk javaSdk = JavaSdk.getInstance(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java index 0e1e3439418d..d0f05480613f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java @@ -491,6 +491,10 @@ public class PsiImplUtil { toplevel = (PsiExpression)toplevel.getParent(); } + if (toplevel instanceof PsiArrayAccessExpression && !PsiUtil.isAccessedForWriting(toplevel)) { + return PsiUtil.captureToplevelWildcards(type, expression); + } + final PsiType normalized = doNormalizeWildcardByPosition(type, expression, toplevel); LOG.assertTrue(normalized.isValid(), type); if (normalized instanceof PsiClassType && !PsiUtil.isAccessedForWriting(toplevel)) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java index f17fb5b54557..8f0e58d9619e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -406,9 +406,17 @@ public class ClsClassImpl extends ClsMemberImpl<PsiClassStub<?>> implements PsiE setMirror(getExtendsList(), mirror.getExtendsList()); setMirror(getImplementsList(), mirror.getImplementsList()); - setMirrors(getOwnFields(), mirror.getFields()); - setMirrors(getOwnMethods(), mirror.getMethods()); - setMirrors(getOwnInnerClasses(), mirror.getInnerClasses()); + if (mirror instanceof PsiExtensibleClass) { + PsiExtensibleClass extMirror = (PsiExtensibleClass)mirror; + setMirrors(getOwnFields(), extMirror.getOwnFields()); + setMirrors(getOwnMethods(), extMirror.getOwnMethods()); + setMirrors(getOwnInnerClasses(), extMirror.getOwnInnerClasses()); + } + else { + setMirrors(getOwnFields(), mirror.getFields()); + setMirrors(getOwnMethods(), mirror.getMethods()); + setMirrors(getOwnInnerClasses(), mirror.getInnerClasses()); + } } @Override diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java index c435f97766a4..060ed38ba278 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -310,20 +310,19 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil } protected static <T extends PsiElement> void setMirrors(@NotNull T[] stubs, @NotNull T[] mirrors) throws InvalidMirrorException { - if (stubs.length != mirrors.length) { - throw new InvalidMirrorException(stubs, mirrors); - } - for (int i = 0; i < stubs.length; i++) { - setMirror(stubs[i], mirrors[i]); - } + setMirrors(Arrays.asList(stubs), Arrays.asList(mirrors)); } protected static <T extends PsiElement> void setMirrors(@NotNull List<T> stubs, @NotNull T[] mirrors) throws InvalidMirrorException { - if (stubs.size() != mirrors.length) { + setMirrors(stubs, Arrays.asList(mirrors)); + } + + protected static <T extends PsiElement> void setMirrors(@NotNull List<T> stubs, @NotNull List<T> mirrors) throws InvalidMirrorException { + if (stubs.size() != mirrors.size()) { throw new InvalidMirrorException(stubs, mirrors); } for (int i = 0; i < stubs.size(); i++) { - setMirror(stubs.get(i), mirrors[i]); + setMirror(stubs.get(i), mirrors.get(i)); } } @@ -340,8 +339,8 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil this("stub:" + Arrays.toString(stubElements) + "; mirror:" + Arrays.toString(mirrorElements)); } - public InvalidMirrorException(@NotNull List<? extends PsiElement> stubElements, @NotNull PsiElement[] mirrorElements) { - this("stub:" + stubElements + "; mirror:" + Arrays.toString(mirrorElements)); + public InvalidMirrorException(@NotNull List<? extends PsiElement> stubElements, @NotNull List<? extends PsiElement> mirrorElements) { + this("stub:" + stubElements + "; mirror:" + mirrorElements); } } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java index 95daf337ebc7..8e79478dd2d6 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java @@ -340,7 +340,7 @@ public class StubBuildingVisitor<T> extends ClassVisitor { byte flags = PsiFieldStubImpl.packFlags((access & Opcodes.ACC_ENUM) != 0, (access & Opcodes.ACC_DEPRECATED) != 0, false); TypeInfo type = fieldType(desc, signature); - String initializer = constToString(value, "boolean".equals(type.text.getString())); + String initializer = constToString(value, "boolean".equals(type.text.getString()), false); PsiFieldStub stub = new PsiFieldStubImpl(myResult, name, type, initializer, flags); PsiModifierListStub modList = new PsiModifierListStubImpl(stub, packFieldFlags(access)); return new AnnotationCollectingVisitor(modList); @@ -371,7 +371,8 @@ public class StubBuildingVisitor<T> extends ClassVisitor { return new TypeInfo(getTypeText(type), (byte)dim, false, Collections.<PsiAnnotationStub>emptyList()); //todo read annos from .class file } - private static final String[] parameterNames = {"p1", "p2", "p3", "p4", "p5", "p6", "p7", "p8", "p9",}; + private static final String[] parameterNames = {"p1", "p2", "p3", "p4", "p5", "p6", "p7", "p8", "p9"}; + @Override @Nullable public MethodVisitor visitMethod(final int access, @@ -536,7 +537,7 @@ public class StubBuildingVisitor<T> extends ClassVisitor { @Override public void visit(final String name, final Object value) { valuePairPrefix(name); - myBuilder.append(constToString(value, false)); + myBuilder.append(constToString(value, false, true)); } @Override @@ -696,7 +697,7 @@ public class StubBuildingVisitor<T> extends ClassVisitor { } @Nullable - private static String constToString(@Nullable Object value, boolean isBoolean) { + private static String constToString(@Nullable Object value, boolean isBoolean, boolean anno) { if (value == null) return null; if (value instanceof String) return "\"" + StringUtil.escapeStringCharacters((String)value) + "\""; @@ -747,6 +748,10 @@ public class StubBuildingVisitor<T> extends ClassVisitor { return buffer.toString(); } + if (anno && value instanceof Type) { + return getTypeText((Type)value) + ".class"; + } + return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java index cead445cb9b4..f9b2a939fa4b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java @@ -46,7 +46,7 @@ public class PsiArrayAccessExpressionImpl extends ExpressionPsiElement implement public PsiType getType() { PsiType arrayType = getArrayExpression().getType(); if (!(arrayType instanceof PsiArrayType)) return null; - return GenericsUtil.getVariableTypeByExpressionType(((PsiArrayType)arrayType).getComponentType()); + return GenericsUtil.getVariableTypeByExpressionType(((PsiArrayType)arrayType).getComponentType(), false); } @Override |