Skip to content

Commit c2a2e95

Browse files
authored
Merge pull request #2745 from vpellan/vpellan/caller-locations-narrowing
[Kernel] Narrow `caller_locations`
2 parents 7cf6ea2 + d2aae37 commit c2a2e95

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

core/kernel.rbs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,9 @@ module Kernel : BasicObject
204204
# Optionally you can pass a range, which will return an array containing the
205205
# entries within the specified range.
206206
#
207-
def self?.caller_locations: (?Integer start_or_range, ?Integer length) -> ::Array[Thread::Backtrace::Location]?
208-
| (?::Range[Integer] start_or_range) -> ::Array[Thread::Backtrace::Location]?
207+
def self?.caller_locations: (Integer start_or_range, ?Integer length) -> ::Array[Thread::Backtrace::Location]?
208+
| (::Range[Integer] start_or_range) -> ::Array[Thread::Backtrace::Location]?
209+
| () -> ::Array[Thread::Backtrace::Location]
209210

210211
# <!--
211212
# rdoc-file=vm_eval.c

test/stdlib/Kernel_test.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,20 @@ class KernelSingletonTest < Test::Unit::TestCase
77

88
testing "singleton(::Kernel)"
99

10+
def test_caller_locations
11+
assert_send_type "() -> Array[Thread::Backtrace::Location]",
12+
Kernel, :caller_locations
13+
14+
assert_send_type "(Integer) -> Array[Thread::Backtrace::Location]?",
15+
Kernel, :caller_locations, 1
16+
17+
assert_send_type "(Integer, Integer) -> Array[Thread::Backtrace::Location]?",
18+
Kernel, :caller_locations, 1, 2
19+
20+
assert_send_type "(::Range[Integer]) -> Array[Thread::Backtrace::Location]?",
21+
Kernel, :caller_locations, (1..3)
22+
end
23+
1024
def test_Array
1125
assert_send_type "(nil) -> []",
1226
Kernel, :Array, nil

0 commit comments

Comments
 (0)