================================================================================
annotation/deprecationSuperMethod
================================================================================

open class Foo {
  @Deprecated
  function bar() = 40

  @Deprecated { message="Use only Foo#qux" }
  function baz() = "baz"

  function qux() = 0
}

class Bar extends Foo {
  function bar() = super.bar() + 2
  function baz() = super.baz() + " was called"
  function qux() = super.qux() - 1
}

barCall = new Bar {}.bar()
bazCall = new Bar {}.baz()
quxCall = new Bar {}.qux()

barCall2ShouldNotWarn = new Bar {}.bar()
bazCall2ShouldNotWarn = new Bar {}.baz()

--------------------------------------------------------------------------------

(module
  (clazz
    (modifier)
    (identifier)
    (classBody
      (classMethod
        (annotation
          (qualifiedIdentifier
            (identifier)))
        (methodHeader
          (identifier)
          (parameterList))
        (intLiteral))
      (classMethod
        (annotation
          (qualifiedIdentifier
            (identifier))
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))
        (methodHeader
          (identifier)
          (parameterList))
        (slStringLiteral))
      (classMethod
        (methodHeader
          (identifier)
          (parameterList))
        (intLiteral))))
  (clazz
    (identifier)
    (classExtendsClause
      (qualifiedIdentifier
        (identifier)))
    (classBody
      (classMethod
        (methodHeader
          (identifier)
          (parameterList))
        (binaryExpr
          (methodCallExpr
            (identifier)
            (argumentList))
          (intLiteral)))
      (classMethod
        (methodHeader
          (identifier)
          (parameterList))
        (binaryExpr
          (methodCallExpr
            (identifier)
            (argumentList))
          (slStringLiteral)))
      (classMethod
        (methodHeader
          (identifier)
          (parameterList))
        (binaryExpr
          (methodCallExpr
            (identifier)
            (argumentList))
          (intLiteral)))))
  (classProperty
    (identifier)
    (methodCallExpr
      (newExpr
        (type
          (qualifiedIdentifier
            (identifier)))
        (objectBody))
      (identifier)
      (argumentList)))
  (classProperty
    (identifier)
    (methodCallExpr
      (newExpr
        (type
          (qualifiedIdentifier
            (identifier)))
        (objectBody))
      (identifier)
      (argumentList)))
  (classProperty
    (identifier)
    (methodCallExpr
      (newExpr
        (type
          (qualifiedIdentifier
            (identifier)))
        (objectBody))
      (identifier)
      (argumentList)))
  (classProperty
    (identifier)
    (methodCallExpr
      (newExpr
        (type
          (qualifiedIdentifier
            (identifier)))
        (objectBody))
      (identifier)
      (argumentList)))
  (classProperty
    (identifier)
    (methodCallExpr
      (newExpr
        (type
          (qualifiedIdentifier
            (identifier)))
        (objectBody))
      (identifier)
      (argumentList))))
