Skip to content

Commit 609a5ad

Browse files
authored
Merge pull request #4280 from jlerbsc/master
fix: Partial removal of the use of instanceof in favour of the use of the API
2 parents 6d50915 + ffe024b commit 609a5ad

7 files changed

Lines changed: 15 additions & 20 deletions

File tree

javaparser-core/src/main/java/com/github/javaparser/printer/DefaultPrettyPrinterVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,7 @@ public void visit(final Parameter n, final Void arg) {
10731073
printAnnotations(n.getVarArgsAnnotations(), false, arg);
10741074
printer.print("...");
10751075
}
1076-
if (!(n.getType() instanceof UnknownType)) {
1076+
if (!(n.getType().isUnknownType())) {
10771077
printer.print(" ");
10781078
}
10791079
n.getName().accept(this, arg);

javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1075,7 +1075,7 @@ public void visit(final Parameter n, final Void arg) {
10751075
printAnnotations(n.getVarArgsAnnotations(), false, arg);
10761076
printer.print("...");
10771077
}
1078-
if (!(n.getType() instanceof UnknownType)) {
1078+
if (!(n.getType().isUnknownType())) {
10791079
printer.print(" ");
10801080
}
10811081
n.getName().accept(this, arg);

javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/TypeExtractor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import com.github.javaparser.ast.stmt.ExpressionStmt;
4141
import com.github.javaparser.ast.stmt.ReturnStmt;
4242
import com.github.javaparser.ast.type.ClassOrInterfaceType;
43-
import com.github.javaparser.ast.type.UnknownType;
4443
import com.github.javaparser.resolution.*;
4544
import com.github.javaparser.resolution.declarations.*;
4645
import com.github.javaparser.resolution.logic.FunctionalInterfaceLogic;
@@ -92,7 +91,7 @@ public ResolvedType visit(VariableDeclarator node, Boolean solveLambdas) {
9291

9392
@Override
9493
public ResolvedType visit(Parameter node, Boolean solveLambdas) {
95-
if (node.getType() instanceof UnknownType) {
94+
if (node.getType().isUnknownType()) {
9695
throw new IllegalStateException("Parameter has unknown type: " + node);
9796
}
9897
return facade.convertToUsage(node.getType());

javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserParameterDeclaration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
import com.github.javaparser.ast.Node;
2525
import com.github.javaparser.ast.body.Parameter;
26-
import com.github.javaparser.ast.type.UnknownType;
2726
import com.github.javaparser.resolution.TypeSolver;
2827
import com.github.javaparser.resolution.declarations.ResolvedParameterDeclaration;
2928
import com.github.javaparser.resolution.model.Value;
@@ -60,7 +59,7 @@ public boolean isVariadic() {
6059

6160
@Override
6261
public ResolvedType getType() {
63-
if (wrappedNode.getType() instanceof UnknownType && JavaParserFactory.getContext(wrappedNode, typeSolver) instanceof LambdaExprContext) {
62+
if (wrappedNode.getType().isUnknownType() && JavaParserFactory.getContext(wrappedNode, typeSolver) instanceof LambdaExprContext) {
6463
Optional<Value> value = JavaParserFactory.getContext(wrappedNode, typeSolver).solveSymbolAsValue(wrappedNode.getNameAsString());
6564
if (value.isPresent()) {
6665
return value.get().getType();

javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ExpressionHelper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.github.javaparser.ast.expr.Expression;
2525
import com.github.javaparser.ast.expr.LambdaExpr;
2626
import com.github.javaparser.ast.stmt.BlockStmt;
27-
import com.github.javaparser.ast.type.UnknownType;
2827
import com.github.javaparser.resolution.TypeSolver;
2928
import com.github.javaparser.resolution.types.ResolvedType;
3029
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
@@ -37,7 +36,7 @@
3736
public class ExpressionHelper {
3837

3938
public static boolean isExplicitlyTyped(LambdaExpr lambdaExpr) {
40-
return lambdaExpr.getParameters().stream().allMatch(p -> !(p.getType() instanceof UnknownType));
39+
return lambdaExpr.getParameters().stream().allMatch(p -> !(p.getType().isUnknownType()));
4140
}
4241

4342
public static List<Expression> getResultExpressions(BlockStmt blockStmt) {

javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/TypeInference.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.util.Optional;
2727

2828
import com.github.javaparser.ast.expr.*;
29-
import com.github.javaparser.ast.type.UnknownType;
3029
import com.github.javaparser.resolution.MethodUsage;
3130
import com.github.javaparser.resolution.TypeSolver;
3231
import com.github.javaparser.resolution.declarations.ResolvedInterfaceDeclaration;
@@ -583,7 +582,7 @@ private List<ResolvedType> formalParameterTypes(ResolvedMethodDeclaration method
583582
}
584583

585584
private boolean isImplicitlyTyped(LambdaExpr lambdaExpr) {
586-
return lambdaExpr.getParameters().stream().anyMatch(p -> p.getType() instanceof UnknownType);
585+
return lambdaExpr.getParameters().stream().anyMatch(p -> p.getType().isUnknownType());
587586
}
588587

589588
private boolean isInexact(MethodReferenceExpr methodReferenceExpr) {
@@ -596,7 +595,7 @@ private boolean isPertinentToApplicability(Expression argument) {
596595
//
597596
// - An implicitly typed lambda expression (§15.27.1).
598597

599-
if (argument instanceof LambdaExpr) {
598+
if (argument.isLambdaExpr()) {
600599
LambdaExpr lambdaExpr = (LambdaExpr)argument;
601600
if (isImplicitlyTyped(lambdaExpr)) {
602601
return false;
@@ -605,7 +604,7 @@ private boolean isPertinentToApplicability(Expression argument) {
605604

606605
// - An inexact method reference expression (§15.13.1).
607606

608-
if (argument instanceof MethodReferenceExpr) {
607+
if (argument.isMethodReferenceExpr()) {
609608
MethodReferenceExpr methodReferenceExpr = (MethodReferenceExpr)argument;
610609
if (isInexact(methodReferenceExpr)) {
611610
return false;
@@ -616,37 +615,37 @@ private boolean isPertinentToApplicability(Expression argument) {
616615
// explicitly typed lambda expression or an exact method reference expression for which the
617616
// corresponding target type (as derived from the signature of m) is a type parameter of m.
618617

619-
if (argument instanceof LambdaExpr) {
618+
if (argument.isLambdaExpr()) {
620619
throw new UnsupportedOperationException();
621620
}
622621

623-
if (argument instanceof MethodReferenceExpr) {
622+
if (argument.isMethodReferenceExpr()) {
624623
throw new UnsupportedOperationException();
625624
}
626625

627626
// - An explicitly typed lambda expression whose body is an expression that is not pertinent to applicability.
628627

629-
if (argument instanceof LambdaExpr) {
628+
if (argument.isLambdaExpr()) {
630629
throw new UnsupportedOperationException();
631630
}
632631

633632
// - An explicitly typed lambda expression whose body is a block, where at least one result expression is not
634633
// pertinent to applicability.
635634

636-
if (argument instanceof LambdaExpr) {
635+
if (argument.isLambdaExpr()) {
637636
throw new UnsupportedOperationException();
638637
}
639638

640639
// - A parenthesized expression (§15.8.5) whose contained expression is not pertinent to applicability.
641640

642-
if (argument instanceof EnclosedExpr) {
641+
if (argument.isEnclosedExpr()) {
643642
EnclosedExpr enclosedExpr = (EnclosedExpr)argument;
644643
return isPertinentToApplicability(enclosedExpr.getInner());
645644
}
646645

647646
// - A conditional expression (§15.25) whose second or third operand is not pertinent to applicability.
648647

649-
if (argument instanceof ConditionalExpr) {
648+
if (argument.isConditionalExpr()) {
650649
ConditionalExpr conditionalExpr = (ConditionalExpr)argument;
651650
return isPertinentToApplicability(conditionalExpr.getThenExpr()) &&
652651
isPertinentToApplicability(conditionalExpr.getElseExpr());

javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/constraintformulas/ExpressionCompatibleWithType.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import com.github.javaparser.ast.stmt.ExpressionStmt;
2727
import com.github.javaparser.ast.stmt.ReturnStmt;
2828
import com.github.javaparser.ast.stmt.Statement;
29-
import com.github.javaparser.ast.type.UnknownType;
3029
import com.github.javaparser.resolution.TypeSolver;
3130
import com.github.javaparser.resolution.logic.FunctionalInterfaceLogic;
3231
import com.github.javaparser.resolution.types.ResolvedType;
@@ -188,7 +187,7 @@ public ReductionResult reduce(BoundSet currentBoundSet) {
188187
// - If the lambda parameters have explicitly declared types F1, ..., Fn and the function type
189188
// has parameter types G1, ..., Gn, then i) for all i (1 ≤ i ≤ n), ‹Fi = Gi›, and ii) ‹T' <: T›.
190189

191-
boolean hasExplicitlyDeclaredTypes = lambdaExpr.getParameters().stream().anyMatch(p -> !(p.getType() instanceof UnknownType));
190+
boolean hasExplicitlyDeclaredTypes = lambdaExpr.getParameters().stream().anyMatch(p -> !(p.getType().isUnknownType()));
192191
if (hasExplicitlyDeclaredTypes) {
193192
throw new UnsupportedOperationException();
194193
}

0 commit comments

Comments
 (0)