List<PsiType> (PsiJavaReference javaReference, @NotNull CompletionParameters parameters) { if (javaReference instanceof PsiReferenceExpression refExpr) { PsiExpression qualifier = refExpr.getQualifierExpression(); if (qualifier != null) { Project project = qualifier.getProject(); PairFunction<PsiExpression, CompletionParameters, PsiType> evaluator = refExpr.getContainingFile().getCopyableUserData(DYNAMIC_TYPE_EVALUATOR); if (evaluator != null) { PsiType type = evaluator.fun(qualifier, parameters); if (type != null) { return Collections.singletonList(type); } } return GuessManager.getInstance(project).getControlFlowExpressionTypeConjuncts(qualifier, parameters.getInvocationCount() > 1); } } return Collections.emptyList(); }