From 1d9fe685ac7e7f0ef1682e5c5e5857b57d5a9a10 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 30 Dec 2016 18:22:09 +0300 Subject: [PATCH] Update lint diagnostics to Uast 1.0.8 --- .../tools/klint/client/api/UElementVisitor.java | 4 ++-- .../android/tools/klint/client/api/UastLintUtils.java | 4 ++-- .../tools/klint/detector/api/ConstantEvaluator.java | 6 +++--- .../android/tools/klint/checks/AnnotationDetector.java | 10 +++++----- .../com/android/tools/klint/checks/ApiDetector.java | 10 +++++----- .../android/inspections/klint/IntellijApiDetector.java | 1 - 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UElementVisitor.java b/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UElementVisitor.java index 86e32e71fd6..146f6b4a252 100644 --- a/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UElementVisitor.java +++ b/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UElementVisitor.java @@ -973,8 +973,8 @@ public class UElementVisitor { } @Override - public boolean visitDeclarationsExpression(UVariableDeclarationsExpression node) { - List list = mNodePsiTypeDetectors.get(UVariableDeclarationsExpression.class); + public boolean visitDeclarationsExpression(UDeclarationsExpression node) { + List list = mNodePsiTypeDetectors.get(UDeclarationsExpression.class); if (list != null) { for (VisitingDetector v : list) { v.getVisitor().visitDeclarationsExpression(node); diff --git a/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UastLintUtils.java b/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UastLintUtils.java index b30b72bab88..56a94c65eee 100644 --- a/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UastLintUtils.java +++ b/plugins/lint/lint-api/src/com/android/tools/klint/client/api/UastLintUtils.java @@ -28,7 +28,7 @@ import com.intellij.psi.*; import org.jetbrains.uast.*; import org.jetbrains.uast.expressions.UReferenceExpression; import org.jetbrains.uast.java.JavaAbstractUExpression; -import org.jetbrains.uast.java.JavaUVariableDeclarationsExpression; +import org.jetbrains.uast.java.JavaUDeclarationsExpression; import java.util.Collections; import java.util.List; @@ -301,7 +301,7 @@ public class UastLintUtils { if (element instanceof UExpression) { node = (UExpression) element; } else if (element instanceof UVariable) { - node = new JavaUVariableDeclarationsExpression( + node = new JavaUDeclarationsExpression( null, Collections.singletonList(((UVariable) element))); } else { throw new IllegalArgumentException("element must be an expression or an UVariable"); diff --git a/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ConstantEvaluator.java b/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ConstantEvaluator.java index c5b7be17ed3..7be5a256c9c 100644 --- a/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ConstantEvaluator.java +++ b/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ConstantEvaluator.java @@ -730,7 +730,7 @@ public class ConstantEvaluator { } else { return left.doubleValue() > right.doubleValue(); } - } else if (operator == UastBinaryOperator.GREATER_OR_EQUAL) { + } else if (operator == UastBinaryOperator.GREATER_OR_EQUALS) { if (isInteger) { return left.longValue() >= right.longValue(); } else { @@ -742,7 +742,7 @@ public class ConstantEvaluator { } else { return left.doubleValue() < right.doubleValue(); } - } else if (operator == UastBinaryOperator.LESS_OR_EQUAL) { + } else if (operator == UastBinaryOperator.LESS_OR_EQUALS) { if (isInteger) { return left.longValue() <= right.longValue(); } else { @@ -1162,7 +1162,7 @@ public class ConstantEvaluator { private static boolean elementHasLevel(UElement node) { return !(node instanceof UBlockExpression - || node instanceof UVariableDeclarationsExpression); + || node instanceof UDeclarationsExpression); } } diff --git a/plugins/lint/lint-checks/src/com/android/tools/klint/checks/AnnotationDetector.java b/plugins/lint/lint-checks/src/com/android/tools/klint/checks/AnnotationDetector.java index 05ee0463ee5..451594e1825 100644 --- a/plugins/lint/lint-checks/src/com/android/tools/klint/checks/AnnotationDetector.java +++ b/plugins/lint/lint-checks/src/com/android/tools/klint/checks/AnnotationDetector.java @@ -253,7 +253,7 @@ public class AnnotationDetector extends Detector implements Detector.UastScanner return false; } // Only flag local variables and parameters (not classes, fields and methods) - if (!(parent instanceof UVariableDeclarationsExpression + if (!(parent instanceof UDeclarationsExpression || parent instanceof ULocalVariable || parent instanceof UParameter)) { return false; @@ -414,12 +414,12 @@ public class AnnotationDetector extends Detector implements Detector.UastScanner UElement parent = node.getContainingElement(); PsiType type; - if (parent instanceof UVariableDeclarationsExpression) { - List elements = ((UVariableDeclarationsExpression) parent).getVariables(); + if (parent instanceof UDeclarationsExpression) { + List elements = ((UDeclarationsExpression) parent).getDeclarations(); if (!elements.isEmpty()) { - UVariable element = elements.get(0); + UDeclaration element = elements.get(0); if (element instanceof ULocalVariable) { - type = element.getType(); + type = ((ULocalVariable) element).getType(); } else { return; } diff --git a/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java b/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java index 7ed9b6ca038..b8231e5fb79 100644 --- a/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java +++ b/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java @@ -2628,8 +2628,8 @@ public class ApiDetector extends ResourceXmlDetector @Nullable UIfExpression ifStatement, @NonNull UBinaryExpression binary) { UastBinaryOperator tokenType = binary.getOperator(); - if (tokenType == UastBinaryOperator.GREATER || tokenType == UastBinaryOperator.GREATER_OR_EQUAL || - tokenType == UastBinaryOperator.LESS_OR_EQUAL || tokenType == UastBinaryOperator.LESS || + if (tokenType == UastBinaryOperator.GREATER || tokenType == UastBinaryOperator.GREATER_OR_EQUALS || + tokenType == UastBinaryOperator.LESS_OR_EQUALS || tokenType == UastBinaryOperator.LESS || tokenType == UastBinaryOperator.EQUALS || tokenType == UastBinaryOperator.IDENTITY_EQUALS) { UExpression left = binary.getLeftOperand(); if (left instanceof UReferenceExpression) { @@ -2655,7 +2655,7 @@ public class ApiDetector extends ResourceXmlDetector boolean fromThen = ifStatement == null || prev == ifStatement.getThenExpression(); boolean fromElse = ifStatement != null && prev == ifStatement.getElseExpression(); assert fromThen == !fromElse; - if (tokenType == UastBinaryOperator.GREATER_OR_EQUAL) { + if (tokenType == UastBinaryOperator.GREATER_OR_EQUALS) { // if (SDK_INT >= ICE_CREAM_SANDWICH) { } else { ... } return level >= api && fromThen; } @@ -2663,7 +2663,7 @@ public class ApiDetector extends ResourceXmlDetector // if (SDK_INT > ICE_CREAM_SANDWICH) { } else { ... } return level >= api - 1 && fromThen; } - else if (tokenType == UastBinaryOperator.LESS_OR_EQUAL) { + else if (tokenType == UastBinaryOperator.LESS_OR_EQUALS) { // if (SDK_INT <= ICE_CREAM_SANDWICH) { ... } else { } return level >= api - 1 && fromElse; } @@ -2755,7 +2755,7 @@ public class ApiDetector extends ResourceXmlDetector } } if (level != -1) { - if (tokenType == UastBinaryOperator.GREATER_OR_EQUAL) { + if (tokenType == UastBinaryOperator.GREATER_OR_EQUALS) { // if (SDK_INT >= ICE_CREAM_SANDWICH && return level >= api; } diff --git a/plugins/lint/lint-idea/src/org/jetbrains/android/inspections/klint/IntellijApiDetector.java b/plugins/lint/lint-idea/src/org/jetbrains/android/inspections/klint/IntellijApiDetector.java index 67ad9ed7a1c..734674ec481 100644 --- a/plugins/lint/lint-idea/src/org/jetbrains/android/inspections/klint/IntellijApiDetector.java +++ b/plugins/lint/lint-idea/src/org/jetbrains/android/inspections/klint/IntellijApiDetector.java @@ -28,7 +28,6 @@ import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.uast.*; -import org.jetbrains.uast.expressions.UInstanceExpression; import org.jetbrains.uast.expressions.UTypeReferenceExpression; import org.jetbrains.uast.util.UastExpressionUtils; import org.jetbrains.uast.visitor.AbstractUastVisitor;