public Node new_args(ISourcePosition position, ListNode pre, ListNode optional, RestArgNode rest, ListNode post, ArgsTailHolder tail) { if (tail == null) return new_args(position, pre, optional, rest, post, (BlockArgNode) null); // Zero-Argument declaration if (optional == null && rest == null && post == null && !tail.hasKeywordArgs() && tail.getBlockArg() == null) { if (pre == null || pre.size() == 0) return new ArgsNoArgNode(position); if (pre.size() == 1 && !hasAssignableArgs(pre)) return new ArgsPreOneArgNode(position, pre); if (pre.size() == 2 && !hasAssignableArgs(pre)) return new ArgsPreTwoArgNode(position, pre); } return new ArgsNode(position, pre, optional, rest, post, tail.getKeywordArgs(), tail.getKeywordRestArgNode(), tail.getBlockArg()); }
public Node new_args(ISourcePosition position, ListNode pre, ListNode optional, RestArgNode rest, ListNode post, ArgsTailHolder tail) { if (tail == null) return new_args(position, pre, optional, rest, post, (BlockArgNode) null); // Zero-Argument declaration if (optional == null && rest == null && post == null && !tail.hasKeywordArgs() && tail.getBlockArg() == null) { if (pre == null || pre.size() == 0) return new ArgsNoArgNode(position); if (pre.size() == 1 && !hasAssignableArgs(pre)) return new ArgsPreOneArgNode(position, pre); if (pre.size() == 2 && !hasAssignableArgs(pre)) return new ArgsPreTwoArgNode(position, pre); } return new ArgsNode(position, pre, optional, rest, post, tail.getKeywordArgs(), tail.getKeywordRestArgNode(), tail.getBlockArg()); }