/** * Creates a new complete constructor {@code AValueDefinition} 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 pattern_ the {@link PPattern} node for the {@code pattern} child of this {@link AValueDefinition} node * @param expression_ the {@link PExp} node for the {@code expression} child of this {@link AValueDefinition} node * @param defs_ the {@link NodeList} node for the {@code defs} child of this {@link AValueDefinition} node * @param expType_ the {@link PType} <b>graph</a> node for the {@code expType} child of this {@link AValueDefinition} node. * <i>The parent of this {@code expType } will not be changed by adding it to this node.</i> */ public AValueDefinition(ILexLocation location_, ILexNameToken name_, NameScope nameScope_, Boolean used_, SClassDefinition classDefinition_, AAccessSpecifierAccessSpecifier access_, PType type_, Pass pass_, PPattern pattern_, PExp expression_, List<? extends PDefinition> defs_, PType expType_) { super(location_,name_,nameScope_,used_,classDefinition_,access_,type_,pass_); this.setPattern(pattern_); this.setExpression(expression_); this.setDefs(defs_); this.setExpType(expType_); }
PType expType = node.getExpression().apply(THIS, question); ExcludedDefinitions.clearExcluded(); node.setExpType(expType);