Bug #19259
Updated by ko1 (Koichi Sasada) almost 3 years ago
Data#with` doesn't call `initialize` nor `initialize_copy`.
It is confirmation request.
```ruby
class P < Data.define(:x, :y)
def initialize_copy(...)
p :initialize_copy
super
end
def initialize(...)
p :initialize
super
end
end
p pt = P.new(1, 2)
#=> :initialize
p pt.clone
#=> :initialize_copy
p pt.dup
#=> :initialize_copy
p pt.with(x: 10)
#=> N/A
```
For example, if an author of `P` add validation code, `#with` skips it.