================================================================================
classes/functions3
================================================================================

const function a(x) = 2 * x

class X {
  function b(x) = 3 * x
  function compute() = a(b(c))
  c = 4
}

res1 = new X {}.compute()

res2 = new X { c = 5 }.compute()

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

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