summaryrefslogtreecommitdiff
path: root/java/java-psi-api/src/com/intellij
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-psi-api/src/com/intellij')
-rw-r--r--java/java-psi-api/src/com/intellij/psi/GenericsUtil.java4
-rw-r--r--java/java-psi-api/src/com/intellij/psi/LambdaUtil.java11
-rw-r--r--java/java-psi-api/src/com/intellij/psi/PsiPackage.java4
-rw-r--r--java/java-psi-api/src/com/intellij/psi/util/ClassUtil.java30
-rw-r--r--java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java1
-rw-r--r--java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java5
6 files changed, 37 insertions, 18 deletions
diff --git a/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java b/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java
index c835a4171f74..4646aea635b3 100644
--- a/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java
@@ -262,7 +262,9 @@ public class GenericsUtil {
for (PsiTypeParameter typeParameter : typeParams) {
PsiType substituted = substitutor.substitute(typeParameter);
if (substituted == null) return null;
- substituted = PsiUtil.captureToplevelWildcards(substituted, context);
+ if (context != null) {
+ substituted = PsiUtil.captureToplevelWildcards(substituted, context);
+ }
PsiClassType[] extendsTypes = typeParameter.getExtendsListTypes();
for (PsiClassType type : extendsTypes) {
diff --git a/java/java-psi-api/src/com/intellij/psi/LambdaUtil.java b/java/java-psi-api/src/com/intellij/psi/LambdaUtil.java
index fcf5e8945e7a..8ff42ca085a0 100644
--- a/java/java-psi-api/src/com/intellij/psi/LambdaUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/LambdaUtil.java
@@ -477,6 +477,17 @@ public class LambdaUtil {
return true;
}
+ //JLS 14.8 Expression Statements
+ public static boolean isExpressionStatementExpression(PsiElement body) {
+ return body instanceof PsiAssignmentExpression ||
+ body instanceof PsiPrefixExpression &&
+ (((PsiPrefixExpression)body).getOperationTokenType() == JavaTokenType.PLUSPLUS ||
+ ((PsiPrefixExpression)body).getOperationTokenType() == JavaTokenType.MINUSMINUS) ||
+ body instanceof PsiPostfixExpression ||
+ body instanceof PsiCallExpression ||
+ body instanceof PsiReferenceExpression && !body.isPhysical();
+ }
+
public static class TypeParamsChecker extends PsiTypeVisitor<Boolean> {
private PsiMethod myMethod;
private final PsiClass myClass;
diff --git a/java/java-psi-api/src/com/intellij/psi/PsiPackage.java b/java/java-psi-api/src/com/intellij/psi/PsiPackage.java
index ed68dc2ac204..65e0af8265ad 100644
--- a/java/java-psi-api/src/com/intellij/psi/PsiPackage.java
+++ b/java/java-psi-api/src/com/intellij/psi/PsiPackage.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -111,7 +111,7 @@ public interface PsiPackage extends PsiCheckedRenameElement, NavigationItem, Psi
@NonNls
String getName();
- boolean containsClassNamed(String name);
+ boolean containsClassNamed(@NotNull String name);
@NotNull
PsiClass[] findClassByShortName(@NotNull String name, @NotNull GlobalSearchScope scope);
diff --git a/java/java-psi-api/src/com/intellij/psi/util/ClassUtil.java b/java/java-psi-api/src/com/intellij/psi/util/ClassUtil.java
index 9f7f6e2cc164..b5b72565da19 100644
--- a/java/java-psi-api/src/com/intellij/psi/util/ClassUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/util/ClassUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -33,6 +33,7 @@ public class ClassUtil {
return null;
}
+ @NotNull
public static String extractClassName(@NotNull String fqName) {
int i = fqName.lastIndexOf('.');
return i == -1 ? fqName : fqName.substring(i + 1);
@@ -58,7 +59,7 @@ public class ClassUtil {
return null;
}
- public static void formatClassName(@NotNull final PsiClass aClass, final StringBuilder buf) {
+ public static void formatClassName(@NotNull final PsiClass aClass, @NotNull StringBuilder buf) {
final String qName = aClass.getQualifiedName();
if (qName != null) {
buf.append(qName);
@@ -78,7 +79,7 @@ public class ClassUtil {
}
@Nullable
- private static PsiClass getContainerClass(final PsiClass aClass) {
+ private static PsiClass getContainerClass(@NotNull PsiClass aClass) {
PsiElement parent = aClass.getContext();
while (parent != null && !(parent instanceof PsiClass)) {
parent = parent.getContext();
@@ -113,11 +114,11 @@ public class ClassUtil {
return result[0];
}
- public static PsiClass findNonQualifiedClassByIndex(final String indexName, @NotNull final PsiClass containingClass) {
+ public static PsiClass findNonQualifiedClassByIndex(@NotNull String indexName, @NotNull final PsiClass containingClass) {
return findNonQualifiedClassByIndex(indexName, containingClass, false);
}
- public static PsiClass findNonQualifiedClassByIndex(final String indexName, @NotNull final PsiClass containingClass,
+ public static PsiClass findNonQualifiedClassByIndex(@NotNull String indexName, @NotNull final PsiClass containingClass,
final boolean jvmCompatible) {
String prefix = getDigitPrefix(indexName);
final int idx = !prefix.isEmpty() ? Integer.parseInt(prefix) : -1;
@@ -167,6 +168,7 @@ public class ClassUtil {
return result[0];
}
+ @NotNull
private static String getDigitPrefix(@NotNull String indexName) {
int i;
for (i = 0; i < indexName.length(); i++) {
@@ -186,24 +188,24 @@ public class ClassUtil {
* @return found psiClass
*/
@Nullable
- public static PsiClass findPsiClass(final PsiManager psiManager, String externalName){
+ public static PsiClass findPsiClass(@NotNull PsiManager psiManager, @NotNull String externalName){
return findPsiClass(psiManager, externalName, null, false);
}
@Nullable
- public static PsiClass findPsiClass(final PsiManager psiManager,
- String externalName,
+ public static PsiClass findPsiClass(@NotNull PsiManager psiManager,
+ @NotNull String externalName,
PsiClass psiClass,
boolean jvmCompatible) {
return findPsiClass(psiManager, externalName, psiClass, jvmCompatible, GlobalSearchScope.allScope(psiManager.getProject()));
}
@Nullable
- public static PsiClass findPsiClass(final PsiManager psiManager,
- String externalName,
+ public static PsiClass findPsiClass(@NotNull PsiManager psiManager,
+ @NotNull String externalName,
@Nullable PsiClass psiClass,
boolean jvmCompatible,
- final GlobalSearchScope scope) {
+ @NotNull GlobalSearchScope scope) {
for (int pos = 0; pos < externalName.length(); pos++) {
if (externalName.charAt(pos) == '$') {
PsiClass parentClass = psiClass;
@@ -220,8 +222,8 @@ public class ClassUtil {
}
@Nullable
- private static PsiClass findSubclass(final PsiManager psiManager,
- final String externalName,
+ private static PsiClass findSubclass(@NotNull PsiManager psiManager,
+ @NotNull String externalName,
final PsiClass psiClass,
final boolean jvmCompatible) {
for (int pos = 0; pos < externalName.length(); pos++) {
@@ -251,7 +253,7 @@ public class ClassUtil {
@Nullable
- public static PsiClass findPsiClassByJVMName(final PsiManager manager, final String jvmClassName) {
+ public static PsiClass findPsiClassByJVMName(@NotNull PsiManager manager, @NotNull String jvmClassName) {
return findPsiClass(manager, jvmClassName.replace('/', '.'), null, true);
}
} \ No newline at end of file
diff --git a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java
index 150a39c4d647..de1c4bf3336a 100644
--- a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java
+++ b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java
@@ -75,6 +75,7 @@ public abstract class MethodSignatureBase implements MethodSignature {
return myTypeParameters;
}
+ @NotNull
public PsiType[] getErasedParameterTypes() {
PsiType[] result = myErasedParameterTypes;
if (result == null) {
diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java
index b38bb494c1e7..a7f92056a195 100644
--- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java
@@ -1108,8 +1108,11 @@ public final class PsiUtil extends PsiUtilCore {
}
public static PsiReturnStatement[] findReturnStatements(PsiMethod method) {
+ return findReturnStatements(method.getBody());
+ }
+
+ public static PsiReturnStatement[] findReturnStatements(PsiCodeBlock body) {
ArrayList<PsiReturnStatement> vector = new ArrayList<PsiReturnStatement>();
- PsiCodeBlock body = method.getBody();
if (body != null) {
addReturnStatements(vector, body);
}