Skip to content

Commit 112e9cb

Browse files
committed
Add failing tests to walrus in comprehension because I don't know how to fix it yet
1 parent 18a7f97 commit 112e9cb

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

‎src/FAST-Python-Tools-Tests/FASTPythonLocalResolverTest.class.st‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2508,6 +2508,54 @@ FASTPythonLocalResolverTest >> testWalrusInBooleanOperator [
25082508
self assert: usedVariable equals: walrus localDeclaration localUses second
25092509
]
25102510

2511+
{ #category : 'tests - walrus' }
2512+
FASTPythonLocalResolverTest >> testWalrusInComprehensionBodyLeaks [
2513+
2514+
| walrus usedVariable |
2515+
self parseAndResolve: 'result = [(y := f(x)) for x in items]
2516+
print(y)'.
2517+
2518+
self skip. "Todo"
2519+
walrus := model module statements first right body.
2520+
self assert: (walrus isOfType: FASTPyWalrus).
2521+
self assert: walrus localDeclaration equals: walrus.
2522+
self assert: walrus localDeclaration name equals: 'y'.
2523+
self assert: walrus localDeclaration isVariableWriteAccess.
2524+
self deny: walrus localDeclaration isNonLocalDeclaration.
2525+
self assert: walrus localDeclaration localUses size equals: 2.
2526+
self assert: walrus localDeclaration localUses first equals: walrus.
2527+
2528+
usedVariable := model module statements second arguments first.
2529+
self assert: usedVariable localDeclaration equals: walrus.
2530+
self assert: usedVariable equals: walrus localDeclaration localUses second
2531+
]
2532+
2533+
{ #category : 'tests - walrus' }
2534+
FASTPythonLocalResolverTest >> testWalrusInComprehensionFilterLeaks [
2535+
2536+
| walrus usedBody usedPrint |
2537+
self parseAndResolve: 'result = [y for x in items if (y := x)]
2538+
print(y)'.
2539+
2540+
self skip. "Todo"
2541+
walrus := model module statements first right conditions first.
2542+
self assert: (walrus isOfType: FASTPyWalrus).
2543+
self assert: walrus localDeclaration equals: walrus.
2544+
self assert: walrus localDeclaration name equals: 'y'.
2545+
self assert: walrus localDeclaration isVariableWriteAccess.
2546+
self deny: walrus localDeclaration isNonLocalDeclaration.
2547+
self assert: walrus localDeclaration localUses size equals: 3.
2548+
self assert: walrus localDeclaration localUses first equals: walrus.
2549+
2550+
usedBody := model module statements first right body.
2551+
self assert: usedBody localDeclaration equals: walrus.
2552+
self assert: usedBody equals: walrus localDeclaration localUses second.
2553+
2554+
usedPrint := model module statements second arguments first.
2555+
self assert: usedPrint localDeclaration equals: walrus.
2556+
self assert: usedPrint equals: walrus localDeclaration localUses third
2557+
]
2558+
25112559
{ #category : 'tests - walrus' }
25122560
FASTPythonLocalResolverTest >> testWalrusInFunctionCallArgument [
25132561

0 commit comments

Comments
 (0)