File tree Expand file tree Collapse file tree 2 files changed +31
-1
lines changed Expand file tree Collapse file tree 2 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -121,6 +121,30 @@ def Warning.warn(msg)
121
121
end
122
122
end
123
123
124
+ ruby_bug '#19530' , '' ...'3.4' do
125
+ it "isn't called by Kernel.warn when category is :deprecated but Warning[:deprecated] is false" do
126
+ warn_deprecated = Warning [ :deprecated ]
127
+ begin
128
+ Warning [ :deprecated ] = false
129
+ Warning . should_not_receive ( :warn )
130
+ Kernel . warn ( "foo" , category : :deprecated )
131
+ ensure
132
+ Warning [ :deprecated ] = warn_deprecated
133
+ end
134
+ end
135
+
136
+ it "isn't called by Kernel.warn when category is :experimental but Warning[:experimental] is false" do
137
+ warn_experimental = Warning [ :experimental ]
138
+ begin
139
+ Warning [ :experimental ] = false
140
+ Warning . should_not_receive ( :warn )
141
+ Kernel . warn ( "foo" , category : :experimental )
142
+ ensure
143
+ Warning [ :experimental ] = warn_experimental
144
+ end
145
+ end
146
+ end
147
+
124
148
it "prints the message when VERBOSE is false" do
125
149
-> { Warning . warn ( "foo" ) } . should complain ( "foo" )
126
150
end
Original file line number Diff line number Diff line change @@ -47,7 +47,13 @@ module Kernel
47
47
# be removed in the future.
48
48
# :experimental :: Used for experimental features that may change in
49
49
# future releases.
50
+ # :performance :: Used for warning about APIs or pattern that have
51
+ # negative performance impact
50
52
def warn ( *msgs , uplevel : nil , category : nil )
51
- Primitive . rb_warn_m ( msgs , uplevel , category )
53
+ if Primitive . cexpr! ( "NIL_P(category)" )
54
+ Primitive . rb_warn_m ( msgs , uplevel , nil )
55
+ elsif Warning [ category = Primitive . cexpr! ( "rb_to_symbol_type(category)" ) ]
56
+ Primitive . rb_warn_m ( msgs , uplevel , category )
57
+ end
52
58
end
53
59
end
You can’t perform that action at this time.
0 commit comments