summaryrefslogtreecommitdiff
path: root/java/java-psi-impl/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-psi-impl/src/com')
-rw-r--r--java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java5
-rw-r--r--java/java-psi-impl/src/com/intellij/externalSystem/JavaProjectDataService.java5
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/PsiImplUtil.java4
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java16
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java21
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java13
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java2
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("&nbsp;");
}
}
}
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