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

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