PsiElementVisitor (@NotNull ProblemsHolder holder, boolean isOnTheFly) { if (!DevKitInspectionUtil.isAllowed(holder.getFile())) { return PsiElementVisitor.EMPTY_VISITOR; } return UastHintedVisitorAdapter.create(holder.getFile().getLanguage(), new AbstractUastNonRecursiveVisitor() { @Override public boolean visitLiteralExpression(@NotNull ULiteralExpression uLiteralExpression) { visit(uLiteralExpression); return super.visitExpression(uLiteralExpression); } private void visit(ULiteralExpression uLiteralExpression) { PsiElement element = uLiteralExpression.getSourcePsi(); PsiLanguageInjectionHost expression = UastLiteralUtils.getSourceInjectionHost(uLiteralExpression); if (element == null || expression == null) return; for (PsiReference reference : expression.getReferences()) { if (reference instanceof PluginConfigReference && !reference.isSoft() && reference.resolve() == null) { holder.registerProblem(reference); } } } }, HINTS); }