@@ -1233,9 +1233,11 @@ private void checkForTypeAnnotation(ImportTree node) {
12331233 }
12341234
12351235 private static Name getSimpleName (ImportTree importTree ) {
1236- return importTree .getQualifiedIdentifier () instanceof IdentifierTree
1237- ? ((IdentifierTree ) importTree .getQualifiedIdentifier ()).getName ()
1238- : ((MemberSelectTree ) importTree .getQualifiedIdentifier ()).getIdentifier ();
1236+ return switch (importTree .getQualifiedIdentifier ()) {
1237+ case IdentifierTree identifierTree -> identifierTree .getName ();
1238+ case MemberSelectTree memberSelectTree -> memberSelectTree .getIdentifier ();
1239+ case Tree tree -> throw new AssertionError (tree );
1240+ };
12391241 }
12401242
12411243 @ Override
@@ -1343,14 +1345,14 @@ public Void visitLambdaExpression(LambdaExpressionTree node, Void unused) {
13431345 } else {
13441346 builder .breakOp (" " );
13451347 }
1346- if (node .getBody (). getKind () == Tree . Kind . BLOCK ) {
1347- visitBlock (
1348- ( BlockTree ) node . getBody (),
1349- CollapseEmptyOrNot . YES ,
1350- AllowLeadingBlankLine . NO ,
1351- AllowTrailingBlankLine .NO );
1352- } else {
1353- scan (node . getBody () , null );
1348+ switch (node .getBody ()) {
1349+ case BlockTree blockTree ->
1350+ visitBlock (
1351+ blockTree ,
1352+ CollapseEmptyOrNot . YES ,
1353+ AllowLeadingBlankLine .NO ,
1354+ AllowTrailingBlankLine . NO );
1355+ case Tree expressionTree -> scan (expressionTree , null );
13541356 }
13551357 builder .close ();
13561358 return null ;
@@ -1433,20 +1435,20 @@ private void visitAnnotationArgument(AssignmentTree node) {
14331435 @ Override
14341436 public Void visitAnnotatedType (AnnotatedTypeTree node , Void unused ) {
14351437 sync (node );
1436- ExpressionTree base = node .getUnderlyingType ();
1437- if ( base instanceof MemberSelectTree selectTree ) {
1438-
1439- scan ( selectTree . getExpression (), null );
1440- token ( "." );
1441- visitAnnotations ( node . getAnnotations (), BreakOrNot . NO , BreakOrNot . NO );
1442- builder . breakToFill ( " " );
1443- visit ( selectTree . getIdentifier ());
1444- } else if ( base instanceof ArrayTypeTree ) {
1445- visitAnnotatedArrayType ( node );
1446- } else {
1447- visitAnnotations ( node . getAnnotations (), BreakOrNot . NO , BreakOrNot . NO );
1448- builder . breakToFill ( " " );
1449- scan ( base , null );
1438+ switch ( node .getUnderlyingType ()) {
1439+ case MemberSelectTree selectTree -> {
1440+ scan ( selectTree . getExpression (), null );
1441+ token ( "." );
1442+ visitAnnotations ( node . getAnnotations (), BreakOrNot . NO , BreakOrNot . NO );
1443+ builder . breakToFill ( " " );
1444+ visit ( selectTree . getIdentifier () );
1445+ }
1446+ case ArrayTypeTree unusedTree -> visitAnnotatedArrayType ( node );
1447+ case ExpressionTree base -> {
1448+ visitAnnotations ( node . getAnnotations (), BreakOrNot . NO , BreakOrNot . NO );
1449+ builder . breakToFill ( " " );
1450+ scan ( base , null );
1451+ }
14501452 }
14511453 return null ;
14521454 }
@@ -1671,8 +1673,7 @@ private boolean handleLogStatement(MethodInvocationTree node) {
16711673 }
16721674 Deque <ExpressionTree > parts = new ArrayDeque <>();
16731675 ExpressionTree curr = node ;
1674- while (curr instanceof MethodInvocationTree ) {
1675- MethodInvocationTree method = (MethodInvocationTree ) curr ;
1676+ while (curr instanceof MethodInvocationTree method ) {
16761677 parts .addFirst (method );
16771678 if (!LOG_METHODS .contains (getMethodName (method ).toString ())) {
16781679 return false ;
@@ -1867,14 +1868,13 @@ private boolean ambiguousUnaryOperator(UnaryTree node, String operatorName) {
18671868 }
18681869
18691870 private JCTree .Tag unaryTag (ExpressionTree expression ) {
1870- if (expression instanceof UnaryTree ) {
1871- return ((JCTree ) expression ).getTag ();
1872- }
1873- if (expression instanceof LiteralTree
1874- && isUnaryMinusLiteral (getSourceForNode (expression , getCurrentPath ()))) {
1875- return JCTree .Tag .MINUS ;
1876- }
1877- return null ;
1871+ return switch (expression ) {
1872+ case UnaryTree unary -> ((JCTree ) unary ).getTag ();
1873+ case LiteralTree literal
1874+ when isUnaryMinusLiteral (getSourceForNode (literal , getCurrentPath ())) ->
1875+ JCTree .Tag .MINUS ;
1876+ default -> null ;
1877+ };
18781878 }
18791879
18801880 @ Override
@@ -2596,10 +2596,11 @@ private void formatAnnotationOrModifier(Deque<AnnotationOrModifier> modifiers) {
25962596
25972597 private boolean isTypeAnnotation (AnnotationTree annotationTree ) {
25982598 Tree annotationType = annotationTree .getAnnotationType ();
2599- if (!(annotationType instanceof IdentifierTree identifierTree )) {
2600- return false ;
2601- }
2602- return typeAnnotationSimpleNames .contains (identifierTree .getName ());
2599+ return switch (annotationType ) {
2600+ case IdentifierTree identifierTree ->
2601+ typeAnnotationSimpleNames .contains (identifierTree .getName ());
2602+ default -> false ;
2603+ };
26032604 }
26042605
26052606 private static boolean isModifier (String token ) {
@@ -2897,8 +2898,9 @@ public Void visitUses(UsesTree node, Void unused) {
28972898 /** Helper method for import declarations, names, and qualified names. */
28982899 private void visitName (Tree node ) {
28992900 Deque <Name > stack = new ArrayDeque <>();
2900- for (; node instanceof MemberSelectTree ; node = ((MemberSelectTree ) node ).getExpression ()) {
2901- stack .addFirst (((MemberSelectTree ) node ).getIdentifier ());
2901+ while (node instanceof MemberSelectTree memberSelectTree ) {
2902+ stack .addFirst (memberSelectTree .getIdentifier ());
2903+ node = memberSelectTree .getExpression ();
29022904 }
29032905 stack .addFirst (((IdentifierTree ) node ).getName ());
29042906 boolean afterFirstToken = false ;
@@ -3068,8 +3070,8 @@ private void visitDot(ExpressionTree node0) {
30683070 prefixes .add (firstInvocationIndex );
30693071 }
30703072
3071- if (prefixes .isEmpty () && items .get (0 ) instanceof IdentifierTree ) {
3072- switch ((( IdentifierTree ) items . get ( 0 )) .getName ().toString ()) {
3073+ if (prefixes .isEmpty () && items .get (0 ) instanceof IdentifierTree identifierTree ) {
3074+ switch (identifierTree .getName ().toString ()) {
30733075 case "this" , "super" -> prefixes .add (1 );
30743076 default -> {}
30753077 }
@@ -3269,12 +3271,12 @@ private void dotExpressionUpToArgs(ExpressionTree expression, Optional<BreakTag>
32693271 }
32703272
32713273 /**
3272- * Returns the base expression of an erray access, e.g. given {@code foo[0][0]} returns {@code
3274+ * Returns the base expression of an array access, e.g. given {@code foo[0][0]} returns {@code
32733275 * foo}.
32743276 */
32753277 private static ExpressionTree getArrayBase (ExpressionTree node ) {
3276- while (node instanceof ArrayAccessTree ) {
3277- node = (( ArrayAccessTree ) node ) .getExpression ();
3278+ while (node instanceof ArrayAccessTree arrayAccessTree ) {
3279+ node = arrayAccessTree .getExpression ();
32783280 }
32793281 return node ;
32803282 }
@@ -3323,8 +3325,7 @@ private void formatArrayIndices(Deque<ExpressionTree> indices) {
33233325 */
33243326 private static Deque <ExpressionTree > getArrayIndices (ExpressionTree expression ) {
33253327 Deque <ExpressionTree > indices = new ArrayDeque <>();
3326- while (expression instanceof ArrayAccessTree ) {
3327- ArrayAccessTree array = (ArrayAccessTree ) expression ;
3328+ while (expression instanceof ArrayAccessTree array ) {
33283329 indices .addLast (array .getIndex ());
33293330 expression = array .getExpression ();
33303331 }
@@ -3461,7 +3462,7 @@ public void scan(JCTree tree) {
34613462 }
34623463 if (tree .getKind () == STRING_LITERAL ) {
34633464 Object value = ((LiteralTree ) tree ).getValue ();
3464- if (value instanceof String && FORMAT_SPECIFIER .matcher (value . toString () ).find ()) {
3465+ if (value instanceof String string && FORMAT_SPECIFIER .matcher (string ).find ()) {
34653466 formatString [0 ] = true ;
34663467 }
34673468 }
@@ -3564,10 +3565,9 @@ private static boolean expressionsAreParallel(
35643565 }
35653566 // Treat UnaryTree expressions as their underlying type for the comparison (so, for example
35663567 // -ve and +ve numeric literals are considered the same).
3567- if (row .get (column ) instanceof UnaryTree ) {
3568- nodeTypes .add (((UnaryTree ) row .get (column )).getExpression ().getKind ());
3569- } else {
3570- nodeTypes .add (row .get (column ).getKind ());
3568+ switch (row .get (column )) {
3569+ case UnaryTree unary -> nodeTypes .add (unary .getExpression ().getKind ());
3570+ case ExpressionTree expression -> nodeTypes .add (expression .getKind ());
35713571 }
35723572 }
35733573 for (Multiset .Entry <Tree .Kind > nodeType : nodeTypes .entrySet ()) {
0 commit comments