PsiElementVisitor (@NotNull final ProblemsHolder holder, boolean isOnTheFly) { return UastHintedVisitorAdapter.create(holder.getFile().getLanguage(), new AbstractUastNonRecursiveVisitor() { @Override public boolean visitCallExpression(@NotNull UCallExpression node) { if (!node.isMethodNameOneOf(List.of(CREATE_ACTION_TOOLBAR_METHOD_NAME, CREATE_ACTION_POPUP_MENU_METHOD_NAME))) { return SKIP_CHILDREN; } PsiMethod method = node.resolve(); if (method != null && requiresSpecifiedActionPlace(method) && node.getValueArgumentCount() > 0) { String methodName = method.getName(); UExpression parameter = node.getArgumentForParameter(0); if (parameter != null && actionPlaceIsUnspecified(parameter)) { PsiElement reportedElement = parameter.getSourcePsi(); if (reportedElement == null) return SKIP_CHILDREN; String messageKey = CREATE_ACTION_TOOLBAR_METHOD_NAME.equals(methodName) ? "inspections.unspecified.actions.place.toolbar" : "inspections.unspecified.actions.place.popup.menu"; holder.registerProblem(reportedElement, DevKitBundle.message(messageKey)); } } return SKIP_CHILDREN; } }, HINTS); }