================================================================================
lambdas/amendLambdaDef
================================================================================

class X {
  hidden fun0 = () -> new Dynamic { zero = 0 }
  res0 = fun0.apply()

  hidden fun1 = (a) -> new Dynamic { one = a }
  res1 = fun1.apply(1)

  hidden fun2 = (a, b) -> new Dynamic { one = a; two = b }
  res2 = fun2.apply(1, 2)

  hidden fun3 = (a, b, c) -> new Dynamic { one = a; two = b; three = c }
  res3 = fun3.apply(1, 2, 3)

  hidden fun4 = (a, b, c, d) -> new Dynamic { one = a; two = b; three = c; four = d }
  res4 = fun4.apply(1, 2, 3, 4)

  hidden fun5 = (a, b, c, d, e) -> new Dynamic { one = a; two = b; three = c; four = d; five = e }
  res5 = fun5.apply(1, 2, 3, 4, 5)
}

x = new X {
  fun0 {
    amended = "amended"
  }
  fun1 {
    amended = "amended"
  }
  fun2 {
    amended = "amended"
  }
  fun3 {
    amended = "amended"
  }
  fun4 {
    amended = "amended"
  }
  fun5 {
    amended = "amended"
  }
}

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

(module
  (clazz
    (identifier)
    (classBody
      (classProperty
        (modifier)
        (identifier)
        (functionLiteral
          (parameterList)
          (newExpr
            (type
              (qualifiedIdentifier
                (identifier)))
            (objectBody
              (objectProperty
                (identifier)
                (intLiteral))))))
      (classProperty
        (identifier)
        (methodCallExpr
          (variableExpr
            (identifier))
          (identifier)
          (argumentList)))
      (classProperty
        (modifier)
        (identifier)
        (functionLiteral
          (parameterList
            (typedIdentifier
              (identifier)))
          (newExpr
            (type
              (qualifiedIdentifier
                (identifier)))
            (objectBody
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))))))
      (classProperty
        (identifier)
        (methodCallExpr
          (variableExpr
            (identifier))
          (identifier)
          (argumentList
            (intLiteral))))
      (classProperty
        (modifier)
        (identifier)
        (functionLiteral
          (parameterList
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier)))
          (newExpr
            (type
              (qualifiedIdentifier
                (identifier)))
            (objectBody
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))))))
      (classProperty
        (identifier)
        (methodCallExpr
          (variableExpr
            (identifier))
          (identifier)
          (argumentList
            (intLiteral)
            (intLiteral))))
      (classProperty
        (modifier)
        (identifier)
        (functionLiteral
          (parameterList
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier)))
          (newExpr
            (type
              (qualifiedIdentifier
                (identifier)))
            (objectBody
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))))))
      (classProperty
        (identifier)
        (methodCallExpr
          (variableExpr
            (identifier))
          (identifier)
          (argumentList
            (intLiteral)
            (intLiteral)
            (intLiteral))))
      (classProperty
        (modifier)
        (identifier)
        (functionLiteral
          (parameterList
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier)))
          (newExpr
            (type
              (qualifiedIdentifier
                (identifier)))
            (objectBody
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))))))
      (classProperty
        (identifier)
        (methodCallExpr
          (variableExpr
            (identifier))
          (identifier)
          (argumentList
            (intLiteral)
            (intLiteral)
            (intLiteral)
            (intLiteral))))
      (classProperty
        (modifier)
        (identifier)
        (functionLiteral
          (parameterList
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier))
            (typedIdentifier
              (identifier)))
          (newExpr
            (type
              (qualifiedIdentifier
                (identifier)))
            (objectBody
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))
              (objectProperty
                (identifier)
                (variableExpr
                  (identifier)))))))
      (classProperty
        (identifier)
        (methodCallExpr
          (variableExpr
            (identifier))
          (identifier)
          (argumentList
            (intLiteral)
            (intLiteral)
            (intLiteral)
            (intLiteral)
            (intLiteral))))))
  (classProperty
    (identifier)
    (newExpr
      (type
        (qualifiedIdentifier
          (identifier)))
      (objectBody
        (objectProperty
          (identifier)
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))
        (objectProperty
          (identifier)
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))
        (objectProperty
          (identifier)
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))
        (objectProperty
          (identifier)
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))
        (objectProperty
          (identifier)
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))
        (objectProperty
          (identifier)
          (objectBody
            (objectProperty
              (identifier)
              (slStringLiteral))))))))
