File tree Expand file tree Collapse file tree
main/java/org/sonar/python/checks Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -56,7 +56,7 @@ private static void checkComprehensionExpression(SubscriptionContext ctx) {
5656 var valueExpression = comprehension .resultExpression ();
5757 var loopExpression = Optional .of (comprehension )
5858 .map (ComprehensionExpression ::comprehensionFor )
59- .filter (comprehensionFor -> Objects .isNull (comprehensionFor .nestedClause ()))
59+ .filter (comprehensionFor -> Objects .isNull (comprehensionFor .nestedClause ()) && comprehensionFor . asyncToken () == null )
6060 .map (ComprehensionFor ::loopExpression )
6161 .orElse (null );
6262
@@ -75,7 +75,7 @@ private static void checkDictComprehensionExpression(SubscriptionContext ctx) {
7575 var valueExpression = comprehension .valueExpression ();
7676 var loopExpressions = Optional .of (comprehension )
7777 .map (DictCompExpression ::comprehensionFor )
78- .filter (comprehensionFor -> Objects .isNull (comprehensionFor .nestedClause ()))
78+ .filter (comprehensionFor -> Objects .isNull (comprehensionFor .nestedClause ()) && comprehensionFor . asyncToken () == null )
7979 .map (ComprehensionFor ::loopExpression )
8080 .map (TreeUtils .toInstanceOfMapper (Tuple .class ))
8181 .map (Tuple ::elements )
Original file line number Diff line number Diff line change @@ -26,3 +26,16 @@ def case2():
2626 dict_comp = {k : v for k , v in iterable_pairs if something (k )}
2727 dict_comp = {k : v1 for k , v2 in iterable_pairs }
2828 dict_comp = {k1 : v for k2 , v in iterable_pairs }
29+
30+ def async_case ():
31+
32+ from somewhere import async_generator , async_pair_generator
33+
34+ iterable_single = aiter (async_generator ())
35+ list_comp = [x async for x in iterable_single ]
36+ set_comp = {x async for x in iterable_single }
37+ list_comp = list (x async for x in iterable_single )
38+ set_comp = set (x async for x in iterable_single )
39+
40+ iterable_pairs = aiter (async_pair_generator ())
41+ dict_comp = {k : v async for k , v in iterable_pairs }
You can’t perform that action at this time.
0 commit comments