void (@NotNull PsiSynchronizedStatement statement) { super.visitSynchronizedStatement(statement); final PsiExpression lockExpression = statement.getLockExpression(); if (lockExpression == null) { return; } final PsiType type = lockExpression.getType(); if (type == null) { return; } if (!LITERAL_TYPES.contains(type.getCanonicalText())) { return; } if (!(lockExpression instanceof PsiReferenceExpression referenceExpression)) { if (ExpressionUtils.isLiteral(lockExpression)) { registerError(lockExpression, type, Integer.valueOf(2)); } else if (warnOnAllPossiblyLiterals) { registerError(lockExpression, type, Integer.valueOf(3)); } return; } final PsiElement target = referenceExpression.resolve(); if (!(target instanceof PsiVariable variable)) { if (warnOnAllPossiblyLiterals) { registerError(lockExpression, type, Integer.valueOf(3)); } return; } final PsiExpression initializer = variable.getInitializer(); if (!ExpressionUtils.isLiteral(initializer)) { if (warnOnAllPossiblyLiterals) { registerError(lockExpression, type, Integer.valueOf(3)); } return; } registerError(lockExpression, type, Integer.valueOf(1)); }