@@ -17,6 +17,51 @@ FASTPythonSSATest >> parseAndResolve: aString [
1717 FASTPythonSSAVisitor resolve: model module
1818]
1919
20+ { #category : ' tests - assignments' }
21+ FASTPythonSSATest >> testAssignementInAssignment [
22+
23+ | assignedVar1 assignedVar2 assignedVar3 usedVar1 usedVar2 usedVar3 usedVar4 |
24+ self parseAndResolve: ' x = y = 3
25+
26+ print(x)
27+ print(y)
28+
29+ x = 5
30+
31+ print(x)
32+ print(y)' .
33+
34+ assignedVar1 := model module statements first left.
35+ self assert: assignedVar1 ssaVersion version equals: 1 .
36+ self assert: assignedVar1 ssaName equals: ' x_1' .
37+ self assert: assignedVar1 ssaVersion localDeclaration equals: assignedVar1 localDeclaration.
38+ self assert: assignedVar1 ssaVersion localUses size equals: 2 .
39+
40+ assignedVar2 := model module statements first right left.
41+ self assert: assignedVar2 ssaVersion version equals: 1 .
42+ self assert: assignedVar2 ssaName equals: ' y_1' .
43+ self assert: assignedVar2 ssaVersion localDeclaration equals: assignedVar2 localDeclaration.
44+ self assert: assignedVar2 ssaVersion localUses size equals: 3 .
45+
46+ usedVar1 := model module statements second arguments first.
47+ self assert: usedVar1 ssaVersion identicalTo: assignedVar1 ssaVersion.
48+
49+ usedVar2 := model module statements third arguments first.
50+ self assert: usedVar2 ssaVersion identicalTo: assignedVar2 ssaVersion.
51+
52+ assignedVar3 := model module statements fourth left.
53+ self assert: assignedVar3 ssaVersion version equals: 2 .
54+ self assert: assignedVar3 ssaName equals: ' x_2' .
55+ self assert: assignedVar3 ssaVersion localDeclaration equals: assignedVar3 localDeclaration.
56+ self assert: assignedVar3 ssaVersion localUses size equals: 2 .
57+
58+ usedVar3 := model module statements fifth arguments first.
59+ self assert: usedVar3 ssaVersion identicalTo: assignedVar3 ssaVersion.
60+
61+ usedVar4 := model module statements sixth arguments first.
62+ self assert: usedVar4 ssaVersion identicalTo: assignedVar2 ssaVersion
63+ ]
64+
2065{ #category : ' tests - assignments' }
2166FASTPythonSSATest >> testAssignementInIfInBothBranchesAndUsage [
2267
0 commit comments