blob: 911268e222528c9ca52e607d642ea5ed40061012 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# mode: run
# ticket: 671
A = 1234
class SimpleAssignment(object):
"""
>>> SimpleAssignment.A
1234
"""
A = A
class SimpleRewrite(object):
"""
>>> SimpleRewrite.A
4321
"""
A = 4321
A = A
def simple_inner(a):
"""
>>> simple_inner(4321).A
1234
"""
A = a
class X(object):
A = A
return X
def conditional(a, cond):
"""
>>> conditional(4321, False).A
1234
>>> conditional(4321, True).A
4321
"""
class X(object):
if cond:
A = a
A = A
return X
def name_error():
"""
>>> name_error() #doctest: +ELLIPSIS
Traceback (most recent call last):
...
NameError: ...B...
"""
class X(object):
B = B
def conditional_name_error(cond):
"""
>>> conditional_name_error(True).B
4321
>>> conditional_name_error(False).B #doctest: +ELLIPSIS
Traceback (most recent call last):
...
NameError: ...B...
"""
class X(object):
if cond:
B = 4321
B = B
return X
C = 1111
del C
def name_error_deleted():
"""
>>> name_error_deleted() #doctest: +ELLIPSIS
Traceback (most recent call last):
...
NameError: ...C...
"""
class X(object):
C = C
_set = set
def name_lookup_order():
"""
>>> Scope = name_lookup_order()
>>> Scope().set(2)
42
>>> Scope.test1 == _set()
True
>>> Scope.test2 == _set()
True
"""
class Scope(object):
test1 = set()
test2 = set()
def set(self, x):
return 42
return Scope
|