|
21 | 21 | import com.intellij.psi.PsiElement; |
22 | 22 | import com.intellij.psi.PsiReference; |
23 | 23 | import com.intellij.psi.util.PsiTreeUtil; |
| 24 | +import org.jetbrains.annotations.NotNull; |
| 25 | +import org.jetbrains.annotations.Nullable; |
24 | 26 |
|
25 | 27 | public class GoReadWriteAccessDetector extends ReadWriteAccessDetector { |
26 | 28 | @Override |
27 | | - public boolean isReadWriteAccessible(final PsiElement element) { |
28 | | - return element instanceof GoVarDefinition || |
29 | | - element instanceof GoConstDefinition || |
30 | | - element instanceof GoParamDefinition || |
31 | | - element instanceof GoReceiver || |
32 | | - element instanceof GoFunctionOrMethodDeclaration; |
| 29 | + public boolean isReadWriteAccessible(@Nullable PsiElement e) { |
| 30 | + return e instanceof GoVarDefinition || |
| 31 | + e instanceof GoConstDefinition || |
| 32 | + e instanceof GoParamDefinition || |
| 33 | + e instanceof GoReceiver || |
| 34 | + e instanceof GoFunctionOrMethodDeclaration; |
33 | 35 | } |
34 | 36 |
|
35 | 37 | @Override |
36 | | - public boolean isDeclarationWriteAccess(PsiElement element) { |
37 | | - return element instanceof GoVarDefinition || |
38 | | - element instanceof GoConstDefinition; |
| 38 | + public boolean isDeclarationWriteAccess(@Nullable PsiElement e) { |
| 39 | + return e instanceof GoVarDefinition || e instanceof GoConstDefinition; |
39 | 40 | } |
40 | 41 |
|
| 42 | + @NotNull |
41 | 43 | @Override |
42 | | - public Access getReferenceAccess(PsiElement referencedElement, PsiReference reference) { |
| 44 | + public Access getReferenceAccess(@Nullable PsiElement referencedElement, @NotNull PsiReference reference) { |
43 | 45 | return getExpressionAccess(reference.getElement()); |
44 | 46 | } |
45 | 47 |
|
| 48 | + @NotNull |
46 | 49 | @Override |
47 | | - public Access getExpressionAccess(PsiElement expression) { |
| 50 | + public Access getExpressionAccess(@Nullable PsiElement e) { |
48 | 51 | GoCompositeElement parent = |
49 | | - PsiTreeUtil.getParentOfType(expression, GoAssignmentStatement.class, GoShortVarDeclaration.class, GoArgumentList.class, GoIndexOrSliceExpr.class, GoBlock.class); |
50 | | - |
51 | | - if (parent instanceof GoArgumentList || |
52 | | - parent instanceof GoIndexOrSliceExpr || |
53 | | - parent instanceof GoBlock) { |
54 | | - return Access.Read; |
55 | | - } |
56 | | - return PsiTreeUtil.getParentOfType(expression, GoLeftHandExprList.class) == null ? Access.Read : Access.Write; |
| 52 | + PsiTreeUtil.getParentOfType(e, GoAssignmentStatement.class, GoShortVarDeclaration.class, GoArgumentList.class, GoIndexOrSliceExpr.class, GoBlock.class); |
| 53 | + if (parent instanceof GoArgumentList || parent instanceof GoIndexOrSliceExpr || parent instanceof GoBlock) return Access.Read; |
| 54 | + return PsiTreeUtil.getParentOfType(e, GoLeftHandExprList.class) == null ? Access.Read : Access.Write; |
57 | 55 | } |
58 | 56 | } |
0 commit comments