resolveInitBody()

in src/resolver/client.js [162:185]


  resolveInitBody(init) {
    const object = this.object;

    let constructNode = new ConstructItem();
    this.currThrows = {};
    if (init.params && init.params.params) {
      init.params.params.forEach(param => {
        let type = this.resolveTypeItem(param.paramType, param);
        constructNode.addParamNode(new GrammerValue(type, param.defaultValue, param.paramName.lexeme));
      });
    }
    if (init.annotation) {
      constructNode.addAnnotation(this.resolveAnnotation(init.annotation, constructNode.index));
    }
    if (init.initBody && init.initBody.stmts) {
      init.initBody.stmts.forEach(stmt => {
        this.visitStmt(constructNode, stmt, constructNode.index);
      });
    }
    if (Object.keys(this.currThrows).length > 0) {
      constructNode.throws = Object.values(this.currThrows);
    }
    object.addBodyNode(constructNode);
  }