diff options
Diffstat (limited to 'java/java-psi-api/src/com')
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); } |