fork of https://github.com/sourcegraph/zoekt
1# v py.f def
2# v py.f.x def
3def f(x):
4
5 # v py.f.g def
6 def g():
7 y = 5
8
9 if True:
10 # v py.f.x ref
11 y = x # < "y" py.f.y def
12 else:
13 l1 = 3 # < "l1" py.f.l1 def
14
15 # v py.f.i def
16 for i in range(10):
17 # v py.f.i ref
18 l2 = i # < "l2" py.f.l2 def
19
20 while False:
21 l3 = 3 # < "l3" py.f.l3 def
22
23 try:
24 l4 = 3 # < "l4" py.f.l4 def
25 # v py.f.e def
26 except Exception as e:
27 l5 = 3 # < "l5" py.f.l5 def
28 # v py.f.e ref
29 _ = e
30
31 # vvvv py.f.file def
32 with open("file.txt") as file:
33 # vvvv py.f.file fef
34 print(file)
35
36 # vvv py.f.lam def
37 # vvv py.f.lam ref
38 _ = lambda lam: lam
39
40 # v py.f.y ref
41 # vv py.f.l1 ref
42 # vv py.f.l2 ref
43 # vv py.f.l3 ref
44 # vv py.f.l4 ref
45 # vv py.f.l5 ref
46 # v py.f.g ref
47 _ = y + l1 + l2 + l3 + l4 + l5 + g()
48
49 # vvv recursive.foo ref,nodef
50 recursive = recursive.foo
51
52
53# vv py.C1 def
54class C1:
55 x = 5 # < "x" py.C1.x def
56
57 def __init__(self, y):
58 # v py.C1.y def
59 self.y = y
60
61 def f(self):
62 # v py.C1.x ref
63 # v py.C1.g ref
64 self.x = self.g()
65
66 # v py.C1.g def
67 def g(self):
68 # v py.C1.y ref
69 return self.y
70
71
72class C2(C1):
73 y = C1()
74
75 def f(self, c1: C1):
76 c = c1
77 # v py.C1.g ref
78 # v py.C1.x ref
79 return self.g() + c.x
80
81
82def newC1() -> C1:
83 return C1()
84
85
86# v py.C1.x ref
87_ = newC1().x
88
89# v py.C1.x ref
90# v py.C1.x ref
91_ = C1().x + C2().y.x
92
93if False:
94 f(3) # < "f" py.f ref