From: bughitgithub@... Date: 2019-11-03T18:57:12+00:00 Subject: [ruby-core:95661] [Ruby master Feature#11660] a falsy value (similar to js undefined) that facilitates forwarding of default arguments Issue #11660 has been updated by bughit (bug hit). > For this purpose I built a special value a while ago What purpose? Surely you understand that your special value, having no compiler support, does not trigger default value computations. You are making my point. Your Undefined is not a real, intended default value, but a signal to compute the real default value in the body of the method after an explicit check for this signal. This under-baked design of the default value feature is the point of this bug. ---------------------------------------- Feature #11660: a falsy value (similar to js undefined) that facilitates forwarding of default arguments https://bugs.ruby-lang.org/issues/11660#change-82450 * Author: bughit (bug hit) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I'll call it "missing" here. Consider the following scenario: ```ruby def foo(default1 = some_expression) end def bar(default1 = some_expression) foo default1 end def foobar(default1 = some_expression) bar default1 end ``` if you had "missing": ```ruby def foo(default1 = some_expression) end def bar(default1 = missing) foo default1 end def foobar(default1 = missing) bar default1 end ``` missing passed as arg would be ignored (as if it wasn't passed at all) and you wouldn't have to repeat the default value expression in every method I believe that's how undefined works in js6 with respect to default args -- https://bugs.ruby-lang.org/ Unsubscribe: