Skip to content

Commit 479218e

Browse files
committed
[GR-33941] Class functions use custom locals
PullRequest: graalpython/1958
2 parents 709c938 + 6155702 commit 479218e

File tree

63 files changed

+2502
-6094
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+2502
-6094
lines changed

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef01.tast

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ ModuleRootNode Name: <module 'classDef01'> SourceSection: [0,16]`class foo():pas
2525
CellVarsSlots: None
2626
ClassBodyRootNode SourceSection: [0,16]`class foo():pass`
2727
Name: foo
28-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
29-
Param Names: namespace
28+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
3029
CelVars: None
3130
FreeVars: None
3231
NeedsCellFrame: False
@@ -41,10 +40,10 @@ ModuleRootNode Name: <module 'classDef01'> SourceSection: [0,16]`class foo():pas
4140
QualName: foo
4241
ReadGlobalOrBuiltinNodeGen SourceSection: None
4342
Identifier: __name__
44-
ReadIndexedArgumentNodeGen SourceSection: None
45-
Index: 0
46-
SetItemIfNotPresentNodeGen SourceSection: None
47-
SetItemNodeGen SourceSection: None
43+
WriteNameNodeGen SourceSection: None
44+
Identifier: __module__
45+
WriteNameNodeGen SourceSection: None
46+
Identifier: __qualname__
4847
FunctionBodyNode SourceSection: [12,16]`pass`
4948
ExpressionStatementNode SourceSection: [12,16]`pass`
5049
EmptyNode SourceSection: [12,16]`pass`

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef02.tast

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ ModuleRootNode Name: <module 'classDef02'> SourceSection: [0,22]`class foo(objec
2525
CellVarsSlots: None
2626
ClassBodyRootNode SourceSection: [0,22]`class foo(object):pa...`
2727
Name: foo
28-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
29-
Param Names: namespace
28+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
3029
CelVars: None
3130
FreeVars: None
3231
NeedsCellFrame: False
@@ -41,10 +40,10 @@ ModuleRootNode Name: <module 'classDef02'> SourceSection: [0,22]`class foo(objec
4140
QualName: foo
4241
ReadGlobalOrBuiltinNodeGen SourceSection: None
4342
Identifier: __name__
44-
ReadIndexedArgumentNodeGen SourceSection: None
45-
Index: 0
46-
SetItemIfNotPresentNodeGen SourceSection: None
47-
SetItemNodeGen SourceSection: None
43+
WriteNameNodeGen SourceSection: None
44+
Identifier: __module__
45+
WriteNameNodeGen SourceSection: None
46+
Identifier: __qualname__
4847
FunctionBodyNode SourceSection: [18,22]`pass`
4948
ExpressionStatementNode SourceSection: [18,22]`pass`
5049
EmptyNode SourceSection: [18,22]`pass`

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef05.tast

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ ModuleRootNode Name: <module 'classDef05'> SourceSection: [0,63]`def fn():↵ c
5151
CellVarsSlots: None
5252
ClassBodyRootNode SourceSection: [12,63]`class DerivedClassNa...`
5353
Name: DerivedClassName
54-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
55-
Param Names: namespace
54+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
5655
CelVars: None
5756
FreeVars: None
5857
NeedsCellFrame: False
@@ -67,10 +66,10 @@ ModuleRootNode Name: <module 'classDef05'> SourceSection: [0,63]`def fn():↵ c
6766
QualName: fn.<locals>.DerivedClassName
6867
ReadGlobalOrBuiltinNodeGen SourceSection: None
6968
Identifier: __name__
70-
ReadIndexedArgumentNodeGen SourceSection: None
71-
Index: 0
72-
SetItemIfNotPresentNodeGen SourceSection: None
73-
SetItemNodeGen SourceSection: None
69+
WriteNameNodeGen SourceSection: None
70+
Identifier: __module__
71+
WriteNameNodeGen SourceSection: None
72+
Identifier: __qualname__
7473
FunctionBodyNode SourceSection: [59,63]`pass`
7574
ExpressionStatementNode SourceSection: [59,63]`pass`
7675
EmptyNode SourceSection: [59,63]`pass`

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef06.tast

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ ModuleRootNode Name: <module 'classDef06'> SourceSection: [0,49]`class DerivedCl
2323
CellVarsSlots: None
2424
ClassBodyRootNode SourceSection: [0,49]`class DerivedClassNa...`
2525
Name: DerivedClassName
26-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
27-
Param Names: namespace
26+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
2827
CelVars: None
2928
FreeVars: None
3029
NeedsCellFrame: False
@@ -39,10 +38,10 @@ ModuleRootNode Name: <module 'classDef06'> SourceSection: [0,49]`class DerivedCl
3938
QualName: DerivedClassName
4039
ReadGlobalOrBuiltinNodeGen SourceSection: None
4140
Identifier: __name__
42-
ReadIndexedArgumentNodeGen SourceSection: None
43-
Index: 0
44-
SetItemIfNotPresentNodeGen SourceSection: None
45-
SetItemNodeGen SourceSection: None
41+
WriteNameNodeGen SourceSection: None
42+
Identifier: __module__
43+
WriteNameNodeGen SourceSection: None
44+
Identifier: __qualname__
4645
FunctionBodyNode SourceSection: [45,49]`pass`
4746
ExpressionStatementNode SourceSection: [45,49]`pass`
4847
EmptyNode SourceSection: [45,49]`pass`

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef07.tast

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ ModuleRootNode Name: <module 'classDef07'> SourceSection: [0,106]`class OrderedD
2525
CellVarsSlots: None
2626
ClassBodyRootNode SourceSection: [0,106]`class OrderedDict(di...`
2727
Name: OrderedDict
28-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
29-
Param Names: namespace
28+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
3029
CelVars: None
3130
FreeVars: None
3231
NeedsCellFrame: False
@@ -41,16 +40,13 @@ ModuleRootNode Name: <module 'classDef07'> SourceSection: [0,106]`class OrderedD
4140
QualName: OrderedDict
4241
ReadGlobalOrBuiltinNodeGen SourceSection: None
4342
Identifier: __name__
44-
ReadIndexedArgumentNodeGen SourceSection: None
45-
Index: 0
46-
SetItemIfNotPresentNodeGen SourceSection: None
47-
SetItemNodeGen SourceSection: None
43+
WriteNameNodeGen SourceSection: None
44+
Identifier: __module__
45+
WriteNameNodeGen SourceSection: None
46+
Identifier: __qualname__
4847
FunctionBodyNode SourceSection: [27,106]`def setup(dict_setit...`
49-
SetItemNodeGen SourceSection: [27,106]`def setup(dict_setit...`
50-
ArgumentExpressionNode SourceSection: None
51-
ReadIndexedArgumentNodeGen SourceSection: None
52-
Index: 0
53-
StringLiteralNode SourceSection: None
48+
WriteNameNodeGen SourceSection: [27,106]`def setup(dict_setit...`
49+
Identifier: setup
5450
FunctionDefinitionNode Name: setup SourceSection: None
5551
Arguments:
5652
GetAttributeNode SourceSection: [52,68]`dict.__setitem__`
@@ -59,13 +55,7 @@ ModuleRootNode Name: <module 'classDef07'> SourceSection: [0,106]`class OrderedD
5955
LookupAndCallBinaryNodeGen SourceSection: None
6056
Op: __getattribute__
6157
ReadClassAttributeNodeGen SourceSection: [52,56]`dict`
62-
GetItemNodeGen SourceSection: None
63-
ArgumentExpressionNode SourceSection: None
64-
ReadIndexedArgumentNodeGen SourceSection: None
65-
Index: 0
66-
StringLiteralNode SourceSection: None
67-
ReadGlobalOrBuiltinNodeGen SourceSection: None
68-
Identifier: dict
58+
Identifier: dict
6959
KwArguments: None
7060
Documentation: None
7161
FreeVarSlots: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef08.tast

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ ModuleRootNode Name: <module 'classDef08'> SourceSection: [0,129]`class Test():
2525
CellVarsSlots: None
2626
ClassBodyRootNode SourceSection: [0,129]`class Test():↵ de...`
2727
Name: Test
28-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
29-
Param Names: namespace
28+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
3029
CelVars: None
3130
FreeVars: None
3231
NeedsCellFrame: False
@@ -41,16 +40,13 @@ ModuleRootNode Name: <module 'classDef08'> SourceSection: [0,129]`class Test():
4140
QualName: Test
4241
ReadGlobalOrBuiltinNodeGen SourceSection: None
4342
Identifier: __name__
44-
ReadIndexedArgumentNodeGen SourceSection: None
45-
Index: 0
46-
SetItemIfNotPresentNodeGen SourceSection: None
47-
SetItemNodeGen SourceSection: None
43+
WriteNameNodeGen SourceSection: None
44+
Identifier: __module__
45+
WriteNameNodeGen SourceSection: None
46+
Identifier: __qualname__
4847
FunctionBodyNode SourceSection: [18,129]`def fn1(format):↵ ...`
49-
SetItemNodeGen SourceSection: [18,70]`def fn1(format):↵ ...`
50-
ArgumentExpressionNode SourceSection: None
51-
ReadIndexedArgumentNodeGen SourceSection: None
52-
Index: 0
53-
StringLiteralNode SourceSection: None
48+
WriteNameNodeGen SourceSection: [18,70]`def fn1(format):↵ ...`
49+
Identifier: fn1
5450
FunctionDefinitionNode Name: fn1 SourceSection: None
5551
Arguments: None
5652
KwArguments: None
@@ -88,11 +84,8 @@ ModuleRootNode Name: <module 'classDef08'> SourceSection: [0,129]`class Test():
8884
Identifier: args
8985
Return Expresssion: ReadLocalVariableNodeGen SourceSection: None
9086
Frame: [1,<return_val>,Object]
91-
SetItemNodeGen SourceSection: [70,129]`def fn2(*args, **kwd...`
92-
ArgumentExpressionNode SourceSection: None
93-
ReadIndexedArgumentNodeGen SourceSection: None
94-
Index: 0
95-
StringLiteralNode SourceSection: None
87+
WriteNameNodeGen SourceSection: [70,129]`def fn2(*args, **kwd...`
88+
Identifier: fn2
9689
FunctionDefinitionNode Name: fn2 SourceSection: None
9790
Arguments: None
9891
KwArguments: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef09.tast

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ ModuleRootNode Name: <module 'classDef09'> SourceSection: [0,36]`class Enum(meta
2323
CellVarsSlots: None
2424
ClassBodyRootNode SourceSection: [0,36]`class Enum(metaclass...`
2525
Name: Enum
26-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
27-
Param Names: namespace
26+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
2827
CelVars: None
2928
FreeVars: None
3029
NeedsCellFrame: False
@@ -39,10 +38,10 @@ ModuleRootNode Name: <module 'classDef09'> SourceSection: [0,36]`class Enum(meta
3938
QualName: Enum
4039
ReadGlobalOrBuiltinNodeGen SourceSection: None
4140
Identifier: __name__
42-
ReadIndexedArgumentNodeGen SourceSection: None
43-
Index: 0
44-
SetItemIfNotPresentNodeGen SourceSection: None
45-
SetItemNodeGen SourceSection: None
41+
WriteNameNodeGen SourceSection: None
42+
Identifier: __module__
43+
WriteNameNodeGen SourceSection: None
44+
Identifier: __qualname__
4645
FunctionBodyNode SourceSection: [32,36]`pass`
4746
ExpressionStatementNode SourceSection: [32,36]`pass`
4847
EmptyNode SourceSection: [32,36]`pass`

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ClassDefTests/classDef10.tast

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ ModuleRootNode Name: <module 'classDef10'> SourceSection: [0,83]`def test(arg):
2727
CellVarsSlots: None
2828
ClassBodyRootNode SourceSection: [22,83]`class FalseRec:↵ de...`
2929
Name: FalseRec
30-
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
31-
Param Names: namespace
30+
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
3231
CelVars: None
3332
FreeVars: None
3433
NeedsCellFrame: False
@@ -43,16 +42,13 @@ ModuleRootNode Name: <module 'classDef10'> SourceSection: [0,83]`def test(arg):
4342
QualName: FalseRec
4443
ReadGlobalOrBuiltinNodeGen SourceSection: None
4544
Identifier: __name__
46-
ReadIndexedArgumentNodeGen SourceSection: None
47-
Index: 0
48-
SetItemIfNotPresentNodeGen SourceSection: None
49-
SetItemNodeGen SourceSection: None
45+
WriteNameNodeGen SourceSection: None
46+
Identifier: __module__
47+
WriteNameNodeGen SourceSection: None
48+
Identifier: __qualname__
5049
FunctionBodyNode SourceSection: [40,83]`def test(self, arg):...`
51-
SetItemNodeGen SourceSection: [40,83]`def test(self, arg):...`
52-
ArgumentExpressionNode SourceSection: None
53-
ReadIndexedArgumentNodeGen SourceSection: None
54-
Index: 0
55-
StringLiteralNode SourceSection: None
50+
WriteNameNodeGen SourceSection: [40,83]`def test(self, arg):...`
51+
Identifier: test
5652
FunctionDefinitionNode Name: test SourceSection: None
5753
Arguments: None
5854
KwArguments: None

0 commit comments

Comments
 (0)