public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr, boolean solveLambdas) {
        List<ResolvedType> argumentTypes = new LinkedList<>();
        List<LambdaArgumentTypePlaceholder> placeholders = new LinkedList<>();

        solveArguments(objectCreationExpr, objectCreationExpr.getArguments(), solveLambdas, argumentTypes, placeholders);

        ResolvedType classDecl = JavaParserFacade.get(typeSolver).convert(objectCreationExpr.getType(), objectCreationExpr);
        if (!classDecl.isReferenceType()) {
            return SymbolReference.unsolved(ResolvedConstructorDeclaration.class);
        }
        SymbolReference<ResolvedConstructorDeclaration> res = ConstructorResolutionLogic.findMostApplicable(((ResolvedClassDeclaration) classDecl.asReferenceType().getTypeDeclaration()).getConstructors(), argumentTypes, typeSolver);
        for (LambdaArgumentTypePlaceholder placeholder : placeholders) {
            placeholder.setMethod(res);
        }
        return res;
    }
public SymbolReference<ResolvedConstructorDeclaration> solve(ObjectCreationExpr objectCreationExpr, boolean solveLambdas) {
        List<ResolvedType> argumentTypes = new LinkedList<>();
        List<LambdaArgumentTypePlaceholder> placeholders = new LinkedList<>();

        solveArguments(objectCreationExpr, objectCreationExpr.getArguments(), solveLambdas, argumentTypes, placeholders);

        ResolvedType classDecl = JavaParserFacade.get(typeSolver).convert(objectCreationExpr.getType(), objectCreationExpr);
        if (!classDecl.isReferenceType()) {
            return SymbolReference.unsolved(ResolvedConstructorDeclaration.class);
        }
        SymbolReference<ResolvedConstructorDeclaration> res = ConstructorResolutionLogic.findMostApplicable(((ResolvedClassDeclaration) classDecl.asReferenceType().getTypeDeclaration()).getConstructors(), argumentTypes, typeSolver);
        for (LambdaArgumentTypePlaceholder placeholder : placeholders) {
            placeholder.setMethod(res);
        }
        return res;
    }
public SymbolReference < ResolvedConstructorDeclaration > solve ( ObjectCreationExpr objectCreationExpr , boolean solveLambdas ) { List < ResolvedType > argumentTypes = new LinkedList <> ( ) ; List < LambdaArgumentTypePlaceholder > placeholders = new LinkedList <> ( ) ; solveArguments ( objectCreationExpr , objectCreationExpr . getArguments ( ) , solveLambdas , argumentTypes , placeholders ) ; ResolvedType classDecl = JavaParserFacade . get ( typeSolver ) . convert ( objectCreationExpr . getType ( ) , objectCreationExpr ) ; if ( ! classDecl . isReferenceType ( ) ) { return SymbolReference . unsolved ( ResolvedConstructorDeclaration . class ) ; } SymbolReference < ResolvedConstructorDeclaration > res = ConstructorResolutionLogic . findMostApplicable ( ( ( ResolvedClassDeclaration ) classDecl . asReferenceType ( ) . getTypeDeclaration ( ) ) . getConstructors ( ) , argumentTypes , typeSolver ) ; for ( LambdaArgumentTypePlaceholder placeholder : placeholders ) { placeholder . setMethod ( res ) ; } return res ; }
Given a constructor call find out to which constructor declaration it corresponds.
Given a constructor call find out to which constructor declaration it corresponds .