Skip to content

Commit 8496107

Browse files
fix: Follow SCIP spec for locals syntax (#240)
usagesForSymbol now validates well-formedness of symbols, which breaks it for locals, where we were using ~ and #, which are not allowed in local symbol strings per the SCIP spec. Use $ instead
1 parent 6bc2d0e commit 8496107

30 files changed

+362
-362
lines changed

scip_indexer/SCIPIndexer.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ struct OwnedLocal {
9797
string toSCIPString(const core::GlobalState &gs, core::FileRef file) {
9898
// 32-bits => if there are 10k methods in a single file, the chance of at least one
9999
// colliding pair is about 1.1%, assuming even distribution. That seems OK.
100-
return fmt::format("local {}~#{}", counter, ::fnv1a_32(owner.name(gs).show(gs)));
100+
return fmt::format("local {}${}", counter, ::fnv1a_32(owner.name(gs).show(gs)));
101101
}
102102
};
103103

test/scip/testdata/alias.snapshot.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ module Mod2
3939

4040
def myfunction(myparam)
4141
# ^^^^^^^^^^ definition [..] Object#myfunction().
42-
# ^^^^^^^ definition local 1~#3083414419
42+
# ^^^^^^^ definition local 1$3083414419
4343
myparam + Mod2::FEG
44-
# ^^^^^^^ reference local 1~#3083414419
44+
# ^^^^^^^ reference local 1$3083414419
4545
# ^^^^ reference [..] Mod2#
4646
# ^^^ reference [..] Mod2#FEG.
4747
end
@@ -70,7 +70,7 @@ class X < T::Enum
7070
# ^^^ definition [..] X#All.
7171
# ^ reference [..] X#A.
7272
# ^ reference [..] X#B.
73-
# ^^^^^^^^ definition local 4~#119448696
73+
# ^^^^^^^^ definition local 4$119448696
7474
# ^ reference [..] X#
7575
end
7676

test/scip/testdata/args.snapshot.rb

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,52 @@
22

33
def args(x, y)
44
# ^^^^ definition [..] Object#args().
5-
# ^ definition local 1~#2634721084
6-
# ^ definition local 2~#2634721084
5+
# ^ definition local 1$2634721084
6+
# ^ definition local 2$2634721084
77
z = x + y
8-
# ^ definition local 3~#2634721084
9-
# ^ reference local 1~#2634721084
10-
# ^ reference local 2~#2634721084
8+
# ^ definition local 3$2634721084
9+
# ^ reference local 1$2634721084
10+
# ^ reference local 2$2634721084
1111
if x == 2
12-
# ^ reference local 1~#2634721084
12+
# ^ reference local 1$2634721084
1313
# ^^ reference [..] BasicObject#`==`().
1414
z += y
15-
# ^ reference (write) local 3~#2634721084
16-
# ^ reference local 3~#2634721084
17-
# ^ reference local 2~#2634721084
15+
# ^ reference (write) local 3$2634721084
16+
# ^ reference local 3$2634721084
17+
# ^ reference local 2$2634721084
1818
else
1919
z += x
20-
# ^ reference (write) local 3~#2634721084
21-
# ^ reference local 3~#2634721084
22-
# ^ reference local 1~#2634721084
20+
# ^ reference (write) local 3$2634721084
21+
# ^ reference local 3$2634721084
22+
# ^ reference local 1$2634721084
2323
end
2424
z
25-
# ^ reference local 3~#2634721084
25+
# ^ reference local 3$2634721084
2626
end
2727

2828
def keyword_args(w:, x: 3, y: [], **kwargs)
2929
# ^^^^^^^^^^^^ definition [..] Object#keyword_args().
30-
# ^^ definition local 1~#3526982640
31-
# ^^ definition local 2~#3526982640
32-
# ^^ definition local 3~#3526982640
30+
# ^^ definition local 1$3526982640
31+
# ^^ definition local 2$3526982640
32+
# ^^ definition local 3$3526982640
3333
y << w + x
34-
# ^ reference local 3~#3526982640
35-
# ^ reference local 1~#3526982640
36-
# ^ reference local 2~#3526982640
34+
# ^ reference local 3$3526982640
35+
# ^ reference local 1$3526982640
36+
# ^ reference local 2$3526982640
3737
y << [a]
38-
# ^ reference local 3~#3526982640
38+
# ^ reference local 3$3526982640
3939
return
4040
end
4141

4242
def use_kwargs
4343
# ^^^^^^^^^^ definition [..] Object#use_kwargs().
4444
h = { a: 3 }
45-
# ^ definition local 1~#571973038
45+
# ^ definition local 1$571973038
4646
keyword_args(w: 0, **h)
4747
# ^^^^^^^^^^^^ reference [..] Object#keyword_args().
48-
# ^ reference local 1~#571973038
48+
# ^ reference local 1$571973038
4949
keyword_args(w: 0, x: 1, y: [2], **h)
5050
# ^^^^^^^^^^^^ reference [..] Object#keyword_args().
51-
# ^ reference local 1~#571973038
51+
# ^ reference local 1$571973038
5252
return
5353
end

test/scip/testdata/arrays.snapshot.rb

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22

33
def arrays(a, i)
44
# ^^^^^^ definition [..] Object#arrays().
5-
# ^ definition local 1~#513334479
6-
# ^ definition local 2~#513334479
5+
# ^ definition local 1$513334479
6+
# ^ definition local 2$513334479
77
a[0] = 0
8-
# ^ reference local 1~#513334479
8+
# ^ reference local 1$513334479
99
a[1] = a[2]
10-
# ^ reference local 1~#513334479
11-
# ^ reference local 1~#513334479
10+
# ^ reference local 1$513334479
11+
# ^ reference local 1$513334479
1212
a[i] = a[i + 1]
13-
# ^ reference local 1~#513334479
14-
# ^ reference local 2~#513334479
15-
# ^ reference local 1~#513334479
16-
# ^ reference local 2~#513334479
13+
# ^ reference local 1$513334479
14+
# ^ reference local 2$513334479
15+
# ^ reference local 1$513334479
16+
# ^ reference local 2$513334479
1717
b = a[2..-1]
18-
# ^ definition local 3~#513334479
19-
# ^ reference local 1~#513334479
18+
# ^ definition local 3$513334479
19+
# ^ reference local 1$513334479
2020
a << a[-1]
21-
# ^ reference local 1~#513334479
22-
# ^ reference local 1~#513334479
21+
# ^ reference local 1$513334479
22+
# ^ reference local 1$513334479
2323
end

test/scip/testdata/blocks_lambdas_procs.snapshot.rb

Lines changed: 73 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -3,161 +3,161 @@
33
def blk
44
# ^^^ definition [..] Object#blk().
55
y = 0
6-
# ^ definition local 1~#1472469056
6+
# ^ definition local 1$1472469056
77
[].each { |x|
8-
# ^ definition local 2~#1472469056
8+
# ^ definition local 2$1472469056
99
y += x
10-
# ^ reference (write) local 1~#1472469056
11-
# ^ reference local 1~#1472469056
12-
# ^^^^^^ reference local 1~#1472469056
13-
# ^ reference local 2~#1472469056
10+
# ^ reference (write) local 1$1472469056
11+
# ^ reference local 1$1472469056
12+
# ^^^^^^ reference local 1$1472469056
13+
# ^ reference local 2$1472469056
1414
}
1515
[].each do |x|
16-
# ^ definition local 3~#1472469056
16+
# ^ definition local 3$1472469056
1717
y += x
18-
# ^ reference (write) local 1~#1472469056
19-
# ^ reference local 1~#1472469056
20-
# ^^^^^^ reference local 1~#1472469056
21-
# ^ reference local 3~#1472469056
18+
# ^ reference (write) local 1$1472469056
19+
# ^ reference local 1$1472469056
20+
# ^^^^^^ reference local 1$1472469056
21+
# ^ reference local 3$1472469056
2222
end
2323
end
2424

2525
def lam
2626
# ^^^ definition [..] Object#lam().
2727
y = 0
28-
# ^ definition local 1~#1499497673
28+
# ^ definition local 1$1499497673
2929
l1 = ->(x) {
30-
# ^^ definition local 4~#1499497673
30+
# ^^ definition local 4$1499497673
3131
# ^^ reference [..] Kernel#
3232
# ^^ reference [..] Kernel#lambda().
33-
# ^ definition local 3~#1499497673
33+
# ^ definition local 3$1499497673
3434
y += x
35-
# ^ reference (write) local 1~#1499497673
36-
# ^ reference local 1~#1499497673
37-
# ^^^^^^ reference local 1~#1499497673
38-
# ^ reference local 3~#1499497673
35+
# ^ reference (write) local 1$1499497673
36+
# ^ reference local 1$1499497673
37+
# ^^^^^^ reference local 1$1499497673
38+
# ^ reference local 3$1499497673
3939
}
4040
l2 = lambda { |x|
41-
# ^^ definition local 6~#1499497673
41+
# ^^ definition local 6$1499497673
4242
# ^^^^^^ reference [..] Kernel#lambda().
43-
# ^ definition local 5~#1499497673
43+
# ^ definition local 5$1499497673
4444
y += x
45-
# ^ reference (write) local 1~#1499497673
46-
# ^ reference local 1~#1499497673
47-
# ^^^^^^ reference local 1~#1499497673
48-
# ^ reference local 5~#1499497673
45+
# ^ reference (write) local 1$1499497673
46+
# ^ reference local 1$1499497673
47+
# ^^^^^^ reference local 1$1499497673
48+
# ^ reference local 5$1499497673
4949
}
5050
l3 = ->(x:) {
51-
# ^^ definition local 9~#1499497673
51+
# ^^ definition local 9$1499497673
5252
# ^^ reference [..] Kernel#
5353
# ^^ reference [..] Kernel#lambda().
54-
# ^^ definition local 8~#1499497673
54+
# ^^ definition local 8$1499497673
5555
y += x
56-
# ^ reference (write) local 1~#1499497673
57-
# ^ reference local 1~#1499497673
58-
# ^^^^^^ reference local 1~#1499497673
59-
# ^ reference local 8~#1499497673
56+
# ^ reference (write) local 1$1499497673
57+
# ^ reference local 1$1499497673
58+
# ^^^^^^ reference local 1$1499497673
59+
# ^ reference local 8$1499497673
6060
}
6161
l4 = lambda { |x:|
62-
# ^^ definition local 11~#1499497673
62+
# ^^ definition local 11$1499497673
6363
# ^^^^^^ reference [..] Kernel#lambda().
64-
# ^^ definition local 10~#1499497673
64+
# ^^ definition local 10$1499497673
6565
y += x
66-
# ^ reference (write) local 1~#1499497673
67-
# ^ reference local 1~#1499497673
68-
# ^^^^^^ reference local 1~#1499497673
69-
# ^ reference local 10~#1499497673
66+
# ^ reference (write) local 1$1499497673
67+
# ^ reference local 1$1499497673
68+
# ^^^^^^ reference local 1$1499497673
69+
# ^ reference local 10$1499497673
7070
}
7171
l1.call(1)
72-
# ^^ reference local 4~#1499497673
72+
# ^^ reference local 4$1499497673
7373
# ^^^^ reference [..] Proc1#call().
7474
l2.call(2)
75-
# ^^ reference local 6~#1499497673
75+
# ^^ reference local 6$1499497673
7676
# ^^^^ reference [..] Proc1#call().
7777
l3.call(x: 3)
78-
# ^^ reference local 9~#1499497673
78+
# ^^ reference local 9$1499497673
7979
# ^^^^ reference [..] Proc#call().
8080
l4.call(x: 4)
81-
# ^^ reference local 11~#1499497673
81+
# ^^ reference local 11$1499497673
8282
# ^^^^ reference [..] Proc#call().
8383
end
8484

8585
def prc
8686
# ^^^ definition [..] Object#prc().
8787
y = 0
88-
# ^ definition local 1~#1283111692
88+
# ^ definition local 1$1283111692
8989
p1 = Proc.new { |x|
90-
# ^^ definition local 4~#1283111692
90+
# ^^ definition local 4$1283111692
9191
# ^^^^ reference [..] Proc#
9292
# ^^^ reference [..] `<Class:Proc>`#new().
93-
# ^ definition local 3~#1283111692
93+
# ^ definition local 3$1283111692
9494
y += x
95-
# ^ reference (write) local 1~#1283111692
96-
# ^ reference local 1~#1283111692
97-
# ^^^^^^ reference local 1~#1283111692
98-
# ^ reference local 3~#1283111692
95+
# ^ reference (write) local 1$1283111692
96+
# ^ reference local 1$1283111692
97+
# ^^^^^^ reference local 1$1283111692
98+
# ^ reference local 3$1283111692
9999
}
100100
p2 = proc { |x|
101-
# ^^ definition local 6~#1283111692
101+
# ^^ definition local 6$1283111692
102102
# ^^^^ reference [..] Kernel#proc().
103-
# ^ definition local 5~#1283111692
103+
# ^ definition local 5$1283111692
104104
y += x
105-
# ^ reference (write) local 1~#1283111692
106-
# ^ reference local 1~#1283111692
107-
# ^^^^^^ reference local 1~#1283111692
108-
# ^ reference local 5~#1283111692
105+
# ^ reference (write) local 1$1283111692
106+
# ^ reference local 1$1283111692
107+
# ^^^^^^ reference local 1$1283111692
108+
# ^ reference local 5$1283111692
109109
}
110110
p3 = Proc.new { |x:|
111-
# ^^ definition local 9~#1283111692
111+
# ^^ definition local 9$1283111692
112112
# ^^^^ reference [..] Proc#
113113
# ^^^ reference [..] `<Class:Proc>`#new().
114-
# ^^ definition local 8~#1283111692
114+
# ^^ definition local 8$1283111692
115115
y += x
116-
# ^ reference (write) local 1~#1283111692
117-
# ^ reference local 1~#1283111692
118-
# ^^^^^^ reference local 1~#1283111692
119-
# ^ reference local 8~#1283111692
116+
# ^ reference (write) local 1$1283111692
117+
# ^ reference local 1$1283111692
118+
# ^^^^^^ reference local 1$1283111692
119+
# ^ reference local 8$1283111692
120120
}
121121
p4 = proc { |x:|
122-
# ^^ definition local 11~#1283111692
122+
# ^^ definition local 11$1283111692
123123
# ^^^^ reference [..] Kernel#proc().
124-
# ^^ definition local 10~#1283111692
124+
# ^^ definition local 10$1283111692
125125
y += x
126-
# ^ reference (write) local 1~#1283111692
127-
# ^ reference local 1~#1283111692
128-
# ^^^^^^ reference local 1~#1283111692
129-
# ^ reference local 10~#1283111692
126+
# ^ reference (write) local 1$1283111692
127+
# ^ reference local 1$1283111692
128+
# ^^^^^^ reference local 1$1283111692
129+
# ^ reference local 10$1283111692
130130
}
131131
p1.call(1)
132-
# ^^ reference local 4~#1283111692
132+
# ^^ reference local 4$1283111692
133133
# ^^^^ reference [..] Proc#call().
134134
p2.call(2)
135-
# ^^ reference local 6~#1283111692
135+
# ^^ reference local 6$1283111692
136136
# ^^^^ reference [..] Proc1#call().
137137
p3.call(x: 3)
138-
# ^^ reference local 9~#1283111692
138+
# ^^ reference local 9$1283111692
139139
# ^^^^ reference [..] Proc#call().
140140
p4.call(x: 4)
141-
# ^^ reference local 11~#1283111692
141+
# ^^ reference local 11$1283111692
142142
# ^^^^ reference [..] Proc#call().
143143
end
144144

145145
def call_block(&blk)
146146
# ^^^^^^^^^^ definition [..] Object#call_block().
147-
# ^^^ definition local 1~#1487178087
147+
# ^^^ definition local 1$1487178087
148148
blk.call
149-
# ^^^ reference local 1~#1487178087
149+
# ^^^ reference local 1$1487178087
150150
end
151151

152152
def use_block_with_defaults
153153
# ^^^^^^^^^^^^^^^^^^^^^^^ definition [..] Object#use_block_with_defaults().
154154
call_block do |oops: nil|
155155
# ^^^^^^^^^^ reference [..] Object#call_block().
156-
# ^^^^^ definition local 1~#4118119342
156+
# ^^^^^ definition local 1$4118119342
157157
end
158158

159159
call_block do |oops = "nil"|
160160
# ^^^^^^^^^^ reference [..] Object#call_block().
161-
# ^^^^ definition local 2~#4118119342
161+
# ^^^^ definition local 2$4118119342
162162
end
163163
end

0 commit comments

Comments
 (0)