Skip to content

Commit 9f4b36e

Browse files
test: Add test for method mixins.
1 parent 0b6454b commit 9f4b36e

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed

test/scip/testdata/mixin.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# typed: true
2+
3+
module M
4+
def f
5+
puts 'M.f'
6+
end
7+
end
8+
9+
class C1
10+
include M
11+
def f
12+
puts 'C1.f'
13+
end
14+
end
15+
16+
# f refers to C1.f
17+
class C2 < C1
18+
end
19+
20+
# f refers to C1.f
21+
class C3 < C1
22+
include M
23+
end
24+
25+
class D1
26+
def f
27+
puts 'D1.f'
28+
end
29+
end
30+
31+
class D2
32+
include M
33+
end
34+
35+
C1.new.f # C1.f
36+
C2.new.f # C1.f
37+
C3.new.f # C1.f
38+
39+
D1.new.f # D1.f
40+
D2.new.f # M.f

test/scip/testdata/mixin.snapshot.rb

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# typed: true
2+
3+
module M
4+
# ^ definition [..] M#
5+
def f
6+
# ^ definition [..] M#f().
7+
puts 'M.f'
8+
end
9+
end
10+
11+
class C1
12+
# ^^ definition [..] C1#
13+
include M
14+
# ^^^^^^^ reference [..] Module#include().
15+
# ^ reference [..] M#
16+
def f
17+
# ^ definition [..] C1#f().
18+
puts 'C1.f'
19+
# ^^^^ reference [..] Kernel#puts().
20+
end
21+
end
22+
23+
# f refers to C1.f
24+
class C2 < C1
25+
# ^^ definition [..] C2#
26+
# ^^ definition [..] C1#
27+
end
28+
29+
# f refers to C1.f
30+
class C3 < C1
31+
# ^^ definition [..] C3#
32+
# ^^ definition [..] C1#
33+
include M
34+
# ^^^^^^^ reference [..] Module#include().
35+
# ^ reference [..] M#
36+
end
37+
38+
class D1
39+
# ^^ definition [..] D1#
40+
def f
41+
# ^ definition [..] D1#f().
42+
puts 'D1.f'
43+
# ^^^^ reference [..] Kernel#puts().
44+
end
45+
end
46+
47+
class D2
48+
# ^^ definition [..] D2#
49+
include M
50+
# ^^^^^^^ reference [..] Module#include().
51+
# ^ reference [..] M#
52+
end
53+
54+
C1.new.f # C1.f
55+
#^^ reference [..] C1#
56+
# ^^^ reference [..] Class#new().
57+
# ^ reference [..] C1#f().
58+
C2.new.f # C1.f
59+
#^^ reference [..] C2#
60+
# ^^^ reference [..] Class#new().
61+
# ^ reference [..] C1#f().
62+
C3.new.f # C1.f
63+
#^^ reference [..] C3#
64+
# ^^^ reference [..] Class#new().
65+
# ^ reference [..] C1#f().
66+
67+
D1.new.f # D1.f
68+
#^^ reference [..] D1#
69+
# ^^^ reference [..] Class#new().
70+
# ^ reference [..] D1#f().
71+
D2.new.f # M.f
72+
#^^ reference [..] D2#
73+
# ^^^ reference [..] Class#new().
74+
# ^ reference [..] M#f().

0 commit comments

Comments
 (0)