]> 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:

Prepare docs for release 22.1.0 (GH-2826)
[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,99 +21,118 @@
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  call.me(maybe)
136 -1 .real
137 -1.0 .real
138 +(1).real
139 +(1.0).real
140  ....__class__
141  list[str]
142  dict[str, int]
143  tuple[str, ...]
144 -tuple[
145 -    str, int, float, dict[str, int]
146 -]
147 +tuple[str, int, float, dict[str, int]]
148  tuple[str, int, float, dict[str, int],]
149  very_long_variable_name_filters: t.List[
150      t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
151  ]
152  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[..., List[SomeClass]] = classmethod(  # type: ignore
156      sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
157  )
158 -xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
159 -    ..., List[SomeClass]
160 -] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__))  # type: ignore
161 +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
162 +    sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
163 +)  # type: ignore
164  slice[0]
165  slice[0:1]
166  slice[0:1:2]
167  slice[:]
168  slice[:-1]
169 @@ -137,118 +156,197 @@
170  numpy[-(c + 1) :, d]
171  numpy[:, l[-2]]
172  numpy[:, ::-1]
173  numpy[np.newaxis, :]
174  (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
175 -{'2.7': dead, '3.7': long_live or die_hard}
176 -{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
177 +{"2.7": dead, "3.7": long_live or die_hard}
178 +{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
179  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
180  (SomeName)
181  SomeName
182  (Good, Bad, Ugly)
183  (i for i 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 +((i**2) for i in (1, 2, 3))
188 +((i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
189 +(((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
190  (*starred,)
191 -{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
192 +{
193 +    "id": "1",
194 +    "type": "type",
195 +    "started_at": now(),
196 +    "ended_at": now() + timedelta(days=10),
197 +    "priority": 1,
198 +    "import_session_id": 1,
199 +    **kwargs,
200 +}
201  a = (1,)
202 -b = 1,
203 +b = (1,)
204  c = 1
205  d = (1,) + a + (2,)
206  e = (1,).count(1)
207  f = 1, *range(10)
208  g = 1, *"ten"
209 -what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
210 -what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
211 -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()
212 -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()
213 +what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
214 +    vars_to_remove
215 +)
216 +what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
217 +    vars_to_remove
218 +)
219 +result = (
220 +    session.query(models.Customer.id)
221 +    .filter(
222 +        models.Customer.account_id == account_id, models.Customer.email == email_address
223 +    )
224 +    .order_by(models.Customer.id.asc())
225 +    .all()
226 +)
227 +result = (
228 +    session.query(models.Customer.id)
229 +    .filter(
230 +        models.Customer.account_id == account_id, models.Customer.email == email_address
231 +    )
232 +    .order_by(models.Customer.id.asc())
233 +    .all()
234 +)
235  Ø = set()
236  authors.łukasz.say_thanks()
237  mapping = {
238      A: 0.25 * (10.0 / 12),
239      B: 0.1 * (10.0 / 12),
240      C: 0.1 * (10.0 / 12),
241      D: 0.1 * (10.0 / 12),
242  }
243  
244 +
245  def gen():
246      yield from outside_of_generator
247 -    a = (yield)
248 -    b = ((yield))
249 -    c = (((yield)))
250 +    a = yield
251 +    b = yield
252 +    c = yield
253 +
254  
255  async def f():
256      await some.complicated[0].call(with_args=(True or (1 is not 1)))
257 -print(* [] or [1])
258 +
259 +
260 +print(*[] or [1])
261  print(**{1: 3} if False else {x: x for x in range(3)})
262 -print(* lambda x: x)
263 -assert(not Test),("Short message")
264 -assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
265 -assert(((parens is TooMany)))
266 -for x, in (1,), (2,), (3,): ...
267 -for y in (): ...
268 -for z in (i for i in (1, 2, 3)): ...
269 -for i in (call()): ...
270 -for j in (1 + (2 + 3)): ...
271 -while(this and that): ...
272 -for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'):
273 +print(*lambda x: x)
274 +assert not Test, "Short message"
275 +assert this is ComplexTest and not requirements.fit_in_a_single_line(
276 +    force=False
277 +), "Short message"
278 +assert parens is TooMany
279 +for (x,) in (1,), (2,), (3,):
280 +    ...
281 +for y in ():
282 +    ...
283 +for z in (i for i in (1, 2, 3)):
284 +    ...
285 +for i in call():
286 +    ...
287 +for j in 1 + (2 + 3):
288 +    ...
289 +while this and that:
290 +    ...
291 +for (
292 +    addr_family,
293 +    addr_type,
294 +    addr_proto,
295 +    addr_canonname,
296 +    addr_sockaddr,
297 +) in socket.getaddrinfo("google.com", "http"):
298      pass
299 -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
300 -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
301 -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
302 -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
303 -if (
304 -    threading.current_thread() != threading.main_thread() and
305 -    threading.current_thread() != threading.main_thread() or
306 -    signal.getsignal(signal.SIGINT) != signal.default_int_handler
307 -):
308 -    return True
309 -if (
310 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
311 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
312 -):
313 -    return True
314 -if (
315 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
316 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
317 -):
318 -    return True
319 -if (
320 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
321 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
322 -):
323 -    return True
324 -if (
325 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
326 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
327 -):
328 -    return True
329 -if (
330 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
331 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
332 -):
333 -    return True
334 -if (
335 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
336 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
337 -):
338 -    return True
339 -if (
340 -    ~ 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
341 -):
342 -    return True
343 -if (
344 -    ~ 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
345 -):
346 -    return True
347 -if (
348 -    ~ 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
349 -):
350 -    return True
351 -aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
352 +a = (
353 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
354 +    in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
355 +)
356 +a = (
357 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
358 +    not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
359 +)
360 +a = (
361 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
362 +    is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
363 +)
364 +a = (
365 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
366 +    is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
367 +)
368 +if (
369 +    threading.current_thread() != threading.main_thread()
370 +    and threading.current_thread() != threading.main_thread()
371 +    or signal.getsignal(signal.SIGINT) != signal.default_int_handler
372 +):
373 +    return True
374 +if (
375 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
376 +    | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
377 +):
378 +    return True
379 +if (
380 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
381 +    & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
382 +):
383 +    return True
384 +if (
385 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
386 +    + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
387 +):
388 +    return True
389 +if (
390 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
391 +    - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
392 +):
393 +    return True
394 +if (
395 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
396 +    * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
397 +):
398 +    return True
399 +if (
400 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
401 +    / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
402 +):
403 +    return True
404 +if (
405 +    ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
406 +    | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l**aaaa.m // aaaa.n
407 +):
408 +    return True
409 +if (
410 +    ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
411 +    | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
412 +    ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l**aaaaaaaa.m // aaaaaaaa.n
413 +):
414 +    return True
415 +if (
416 +    ~aaaaaaaaaaaaaaaa.a
417 +    + aaaaaaaaaaaaaaaa.b
418 +    - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
419 +    | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
420 +    ^ aaaaaaaaaaaaaaaa.i
421 +    << aaaaaaaaaaaaaaaa.k
422 +    >> aaaaaaaaaaaaaaaa.l**aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
423 +):
424 +    return True
425 +(
426 +    aaaaaaaaaaaaaaaa
427 +    + aaaaaaaaaaaaaaaa
428 +    - aaaaaaaaaaaaaaaa
429 +    * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
430 +    / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
431 +)
432  aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa
433 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
434 +(
435 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
436 +    >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
437 +    << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
438 +)
439  bbbb >> bbbb * bbbb
440 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
441 +(
442 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
443 +    ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
444 +    ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
445 +)
446  last_call()
447  # standalone comment at ENDMARKER