]> git.madduck.net Git - etc/vim.git/blob - tests/data/expression_skip_magic_trailing_comma.diff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Hug power operators if its operands are "simple" (#2726)
[etc/vim.git] / tests / data / expression_skip_magic_trailing_comma.diff
1 --- [Deterministic header]
2 +++ [Deterministic header]
3 @@ -1,8 +1,8 @@
4  ...
5 -'some_string'
6 -b'\\xa3'
7 +"some_string"
8 +b"\\xa3"
9  Name
10  None
11  True
12  False
13  1
14 @@ -21,71 +21,92 @@
15  Name1 or (Name2 and Name3) or Name4
16  Name1 or Name2 and Name3 or Name4
17  v1 << 2
18  1 >> v2
19  1 % finished
20 -1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
21 -((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
22 +1 + v2 - v3 * 4 ^ 5**v6 / 7 // 8
23 +((1 + v2) - (v3 * 4)) ^ (((5**v6) / 7) // 8)
24  not great
25  ~great
26  +value
27  -1
28  ~int and not v1 ^ 123 + v2 | True
29  (~int) and (not ((v1 ^ (123 + v2)) | True))
30 -+really ** -confusing ** ~operator ** -precedence
31 -flags & ~ select.EPOLLIN and waiters.write_task is not None
32 ++(really ** -(confusing ** ~(operator**-precedence)))
33 +flags & ~select.EPOLLIN and waiters.write_task is not None
34  lambda arg: None
35  lambda a=True: a
36  lambda a, b, c=True: a
37 -lambda a, b, c=True, *, d=(1 << v2), e='str': a
38 -lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
39 +lambda a, b, c=True, *, d=(1 << v2), e="str": a
40 +lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
41  manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
42 -foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id])
43 +foo = lambda port_id, ignore_missing: {
44 +    "port1": port1_resource,
45 +    "port2": port2_resource,
46 +}[port_id]
47  1 if True else 2
48  str or None if True else str or bytes or None
49  (str or None) if True else (str or bytes or None)
50  str or None if (1 if True else 2) else str or bytes or None
51  (str or None) if (1 if True else 2) else (str or bytes or None)
52 -((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None))
53 -{'2.7': dead, '3.7': (long_live or die_hard)}
54 -{'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
55 +(
56 +    (super_long_variable_name or None)
57 +    if (1 if super_long_test_name else 2)
58 +    else (str or bytes or None)
59 +)
60 +{"2.7": dead, "3.7": (long_live or die_hard)}
61 +{"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
62  {**a, **b, **c}
63 -{'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
64 -({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
65 +{"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
66 +({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
67  ()
68  (1,)
69  (1, 2)
70  (1, 2, 3)
71  []
72  [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
73 -[1, 2, 3,]
74 +[1, 2, 3]
75  [*a]
76  [*range(10)]
77 -[*a, 4, 5,]
78 -[4, *a, 5,]
79 -[this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more]
80 +[*a, 4, 5]
81 +[4, *a, 5]
82 +[
83 +    this_is_a_very_long_variable_which_will_force_a_delimiter_split,
84 +    element,
85 +    another,
86 +    *more,
87 +]
88  {i for i in (1, 2, 3)}
89 -{(i ** 2) for i in (1, 2, 3)}
90 -{(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
91 -{((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
92 +{(i**2) for i in (1, 2, 3)}
93 +{(i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
94 +{((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
95  [i for i in (1, 2, 3)]
96 -[(i ** 2) for i in (1, 2, 3)]
97 -[(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
98 -[((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
99 +[(i**2) for i in (1, 2, 3)]
100 +[(i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
101 +[((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
102  {i: 0 for i in (1, 2, 3)}
103 -{i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
104 +{i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
105  {a: b * 2 for a, b in dictionary.items()}
106  {a: b * -2 for a, b in dictionary.items()}
107 -{k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
108 +{
109 +    k: v
110 +    for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
111 +}
112  Python3 > Python2 > COBOL
113  Life is Life
114  call()
115  call(arg)
116 -call(kwarg='hey')
117 -call(arg, kwarg='hey')
118 -call(arg, another, kwarg='hey', **kwargs)
119 -call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs)  # note: no trailing comma pre-3.6
120 +call(kwarg="hey")
121 +call(arg, kwarg="hey")
122 +call(arg, another, kwarg="hey", **kwargs)
123 +call(
124 +    this_is_a_very_long_variable_which_will_force_a_delimiter_split,
125 +    arg,
126 +    another,
127 +    kwarg="hey",
128 +    **kwargs
129 +)  # note: no trailing comma pre-3.6
130  call(*gidgets[:2])
131  call(a, *gidgets[:2])
132  call(**self.screen_kwargs)
133  call(b, **self.screen_kwargs)
134  lukasz.langa.pl
135 @@ -94,26 +115,24 @@
136  1.0 .real
137  ....__class__
138  list[str]
139  dict[str, int]
140  tuple[str, ...]
141 -tuple[
142 -    str, int, float, dict[str, int]
143 -]
144 +tuple[str, int, float, dict[str, int]]
145  tuple[str, int, float, dict[str, int],]
146  very_long_variable_name_filters: t.List[
147      t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
148  ]
149  xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
150      sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
151  )
152  xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
153      sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
154  )
155 -xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
156 -    ..., List[SomeClass]
157 -] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__))  # type: ignore
158 +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
159 +    sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
160 +)  # type: ignore
161  slice[0]
162  slice[0:1]
163  slice[0:1:2]
164  slice[:]
165  slice[:-1]
166 @@ -137,118 +156,197 @@
167  numpy[-(c + 1) :, d]
168  numpy[:, l[-2]]
169  numpy[:, ::-1]
170  numpy[np.newaxis, :]
171  (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
172 -{'2.7': dead, '3.7': long_live or die_hard}
173 -{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
174 +{"2.7": dead, "3.7": long_live or die_hard}
175 +{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
176  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
177  (SomeName)
178  SomeName
179  (Good, Bad, Ugly)
180  (i for i in (1, 2, 3))
181 -((i ** 2) for i in (1, 2, 3))
182 -((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
183 -(((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
184 +((i**2) for i in (1, 2, 3))
185 +((i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
186 +(((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
187  (*starred,)
188 -{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
189 +{
190 +    "id": "1",
191 +    "type": "type",
192 +    "started_at": now(),
193 +    "ended_at": now() + timedelta(days=10),
194 +    "priority": 1,
195 +    "import_session_id": 1,
196 +    **kwargs,
197 +}
198  a = (1,)
199 -b = 1,
200 +b = (1,)
201  c = 1
202  d = (1,) + a + (2,)
203  e = (1,).count(1)
204  f = 1, *range(10)
205  g = 1, *"ten"
206 -what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
207 -what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
208 -result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc()).all()
209 -result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all()
210 +what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
211 +    vars_to_remove
212 +)
213 +what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
214 +    vars_to_remove
215 +)
216 +result = (
217 +    session.query(models.Customer.id)
218 +    .filter(
219 +        models.Customer.account_id == account_id, models.Customer.email == email_address
220 +    )
221 +    .order_by(models.Customer.id.asc())
222 +    .all()
223 +)
224 +result = (
225 +    session.query(models.Customer.id)
226 +    .filter(
227 +        models.Customer.account_id == account_id, models.Customer.email == email_address
228 +    )
229 +    .order_by(models.Customer.id.asc())
230 +    .all()
231 +)
232  Ø = set()
233  authors.łukasz.say_thanks()
234  mapping = {
235      A: 0.25 * (10.0 / 12),
236      B: 0.1 * (10.0 / 12),
237      C: 0.1 * (10.0 / 12),
238      D: 0.1 * (10.0 / 12),
239  }
240  
241 +
242  def gen():
243      yield from outside_of_generator
244 -    a = (yield)
245 -    b = ((yield))
246 -    c = (((yield)))
247 +    a = yield
248 +    b = yield
249 +    c = yield
250 +
251  
252  async def f():
253      await some.complicated[0].call(with_args=(True or (1 is not 1)))
254 -print(* [] or [1])
255 +
256 +
257 +print(*[] or [1])
258  print(**{1: 3} if False else {x: x for x in range(3)})
259 -print(* lambda x: x)
260 -assert(not Test),("Short message")
261 -assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
262 -assert(((parens is TooMany)))
263 -for x, in (1,), (2,), (3,): ...
264 -for y in (): ...
265 -for z in (i for i in (1, 2, 3)): ...
266 -for i in (call()): ...
267 -for j in (1 + (2 + 3)): ...
268 -while(this and that): ...
269 -for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'):
270 +print(*lambda x: x)
271 +assert not Test, "Short message"
272 +assert this is ComplexTest and not requirements.fit_in_a_single_line(
273 +    force=False
274 +), "Short message"
275 +assert parens is TooMany
276 +for (x,) in (1,), (2,), (3,):
277 +    ...
278 +for y in ():
279 +    ...
280 +for z in (i for i in (1, 2, 3)):
281 +    ...
282 +for i in call():
283 +    ...
284 +for j in 1 + (2 + 3):
285 +    ...
286 +while this and that:
287 +    ...
288 +for (
289 +    addr_family,
290 +    addr_type,
291 +    addr_proto,
292 +    addr_canonname,
293 +    addr_sockaddr,
294 +) in socket.getaddrinfo("google.com", "http"):
295      pass
296 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
297 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
298 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
299 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
300 -if (
301 -    threading.current_thread() != threading.main_thread() and
302 -    threading.current_thread() != threading.main_thread() or
303 -    signal.getsignal(signal.SIGINT) != signal.default_int_handler
304 -):
305 -    return True
306 -if (
307 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
308 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
309 -):
310 -    return True
311 -if (
312 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
313 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
314 -):
315 -    return True
316 -if (
317 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
318 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
319 -):
320 -    return True
321 -if (
322 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
323 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
324 -):
325 -    return True
326 -if (
327 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
328 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
329 -):
330 -    return True
331 -if (
332 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
333 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
334 -):
335 -    return True
336 -if (
337 -    ~ aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
338 -):
339 -    return True
340 -if (
341 -    ~ aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
342 -):
343 -    return True
344 -if (
345 -    ~ aaaaaaaaaaaaaaaa.a + aaaaaaaaaaaaaaaa.b - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ^ aaaaaaaaaaaaaaaa.i << aaaaaaaaaaaaaaaa.k >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
346 -):
347 -    return True
348 -aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
349 +a = (
350 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
351 +    in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
352 +)
353 +a = (
354 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
355 +    not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
356 +)
357 +a = (
358 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
359 +    is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
360 +)
361 +a = (
362 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
363 +    is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
364 +)
365 +if (
366 +    threading.current_thread() != threading.main_thread()
367 +    and threading.current_thread() != threading.main_thread()
368 +    or signal.getsignal(signal.SIGINT) != signal.default_int_handler
369 +):
370 +    return True
371 +if (
372 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
373 +    | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
374 +):
375 +    return True
376 +if (
377 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
378 +    & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
379 +):
380 +    return True
381 +if (
382 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
383 +    + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
384 +):
385 +    return True
386 +if (
387 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
388 +    - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
389 +):
390 +    return True
391 +if (
392 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
393 +    * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
394 +):
395 +    return True
396 +if (
397 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
398 +    / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
399 +):
400 +    return True
401 +if (
402 +    ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
403 +    | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l**aaaa.m // aaaa.n
404 +):
405 +    return True
406 +if (
407 +    ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
408 +    | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
409 +    ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l**aaaaaaaa.m // aaaaaaaa.n
410 +):
411 +    return True
412 +if (
413 +    ~aaaaaaaaaaaaaaaa.a
414 +    + aaaaaaaaaaaaaaaa.b
415 +    - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
416 +    | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
417 +    ^ aaaaaaaaaaaaaaaa.i
418 +    << aaaaaaaaaaaaaaaa.k
419 +    >> aaaaaaaaaaaaaaaa.l**aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
420 +):
421 +    return True
422 +(
423 +    aaaaaaaaaaaaaaaa
424 +    + aaaaaaaaaaaaaaaa
425 +    - aaaaaaaaaaaaaaaa
426 +    * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
427 +    / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
428 +)
429  aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa
430 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
431 +(
432 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
433 +    >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
434 +    << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
435 +)
436  bbbb >> bbbb * bbbb
437 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
438 +(
439 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
440 +    ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
441 +    ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
442 +)
443  last_call()
444  # standalone comment at ENDMARKER