@Override
  public void visitPyRaiseStatement(@NotNull PyRaiseStatement node) {
    super.visitPyRaiseStatement(node);

    // empty raise under finally
    registerForAllMatchingVersions(
      level -> registerForLanguageLevel(level) && UnsupportedFeaturesUtil.raiseHasNoArgsUnderFinally(node, level),
      PyPsiBundle.message("INSP.compatibility.feature.support.raise.with.no.arguments.outside.except.block"),
      node
    );

    // raise 1, 2, 3
    registerForAllMatchingVersions(level -> registerForLanguageLevel(level) && UnsupportedFeaturesUtil.raiseHasMoreThenOneArg(node, level),
                                   PyPsiBundle.message("INSP.compatibility.feature.support.this.syntax"),
                                   node,
                                   new ReplaceRaiseStatementQuickFix());

    // raise exception from cause
    registerForAllMatchingVersions(level -> registerForLanguageLevel(level) && UnsupportedFeaturesUtil.raiseHasFromKeyword(node, level),
                                   PyPsiBundle.message("INSP.compatibility.feature.support.this.syntax"),
                                   node,
                                   new ReplaceRaiseStatementQuickFix());
  }
@Override
  public void visitPyRaiseStatement(@NotNull PyRaiseStatement node)