/** * Creates a new complete constructor {@code ALetBeStStm} node with the given nodes as children. * @deprecated This method should not be used, use AstFactory instead. * The basic child nodes are removed from their previous parents. * @param bind_ the {@link PMultipleBind} node for the {@code bind} child of this {@link ALetBeStStm} node * @param suchThat_ the {@link PExp} node for the {@code suchThat} child of this {@link ALetBeStStm} node * @param statement_ the {@link PStm} node for the {@code statement} child of this {@link ALetBeStStm} node * @param def_ the {@link AMultiBindListDefinition} <b>graph</a> node for the {@code def} child of this {@link ALetBeStStm} node. * <i>The parent of this {@code def } will not be changed by adding it to this node.</i> */ public ALetBeStStm(ILexLocation location_, PType type_, PMultipleBind bind_, PExp suchThat_, PStm statement_, AMultiBindListDefinition def_) { super(location_,type_); this.setBind(bind_); this.setSuchThat(suchThat_); this.setStatement(statement_); this.setDef(def_); }
@Override public PType caseALetBeStStm(ALetBeStStm node, TypeCheckInfo question) throws AnalysisException { Entry<PType, AMultiBindListDefinition> res = typecheckLetBeSt(node, node.getLocation(), node.getBind(), node.getSuchThat(), node.getStatement(), question); node.setDef(res.getValue()); node.setType(res.getKey()); return node.getType(); }