From: mpavel@... Date: 2020-07-31T06:27:15+00:00 Subject: [ruby-core:99412] [Ruby master Bug#17093] attr_accessor works strange Issue #17093 has been updated by mpavel (pavel m). you doesnt see "if type.nil?" its local variable? p type.nil? return false next "if type.nil?" return true and "type = 'default'" will work why? ---------------------------------------- Bug #17093: attr_accessor works strange https://bugs.ruby-lang.org/issues/17093#change-86860 * Author: mpavel (pavel m) * Status: Closed * Priority: Normal * ruby -v: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin17] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- require 'rubygems' class A def initialize(type:) @type = type end def b p type p type.nil? type = 'default' if type.nil? type end private attr_accessor :type end RSpec.describe A do let(:type) { 'whoaaa' } it 'return default' do expect(A.new(type: type).b).to eq('default') end it 'instance variable is "whoaaa"' do expect(A.new(type: type).instance_variable_get(:@type)).to eq(type) end end all tests green output A "whoaaa" false return default instance variable is "whoaaa" -- https://bugs.ruby-lang.org/ Unsubscribe: