Commit Graph

50 Commits

Author SHA1 Message Date
topecongiro 121f5e4e42 Add an test for #2652 2018-04-28 15:09:36 +09:00
Seiichi Uchida e58e97783e Preserve trailing comma on macro call when using mixed layout 2018-04-12 09:54:00 +09:00
Seiichi Uchida a43ac40a78 Add tests for #2588 2018-04-05 12:52:43 +09:00
Ryan Leung 2c7e737a06 add tests for macro!(/* comment */) (#2592)
* add tests
2018-04-04 11:02:01 +09:00
Ivan Sorokin e6423cf4b1 Add test #2574 (#2577) 2018-04-01 00:54:44 +09:00
Seiichi Uchida a49e00b4d7 Avoid panicking on macro call with a single comma
`parse_item` from libsyntax may return `None`, so we need to discard
the result in that case.
2018-03-28 18:14:51 +09:00
Nick Cameron 4f522794ae Tidy up and pass tests 2018-03-02 15:07:13 +13:00
topecongiro 4af2aa3a9e Create rustfmt_core crate 2018-02-07 22:48:05 +09:00
Seiichi Uchida 61b23a4293 Skip rewriting macro def with repeat 2018-02-04 08:52:50 +09:00
Seiichi Uchida 298f29a57d Do not panic when special macros have less args than expected 2018-01-18 00:50:16 +09:00
Nick Cameron 9368de276c Merge pull request #2327 from nrc/macro-defs
Some macros 2.0 macro defs
2018-01-04 14:02:37 +13:00
Nick Cameron aa758d671f Better handling of comments in macro defs 2018-01-03 20:36:52 +13:00
Nick Cameron 47d9ccd6a1 Tests for formatting macro 2.0 defs 2018-01-01 19:51:54 +13:00
David Wood 39e2f43f91 Split assert_eq! if any arguments are not simple 2017-12-27 21:19:42 +00:00
David Wood ef8b2efd13 Fix off-by-one error in assert_eq! line wrapping
If two really long conditions are checked for equality, they wouldn't be split
into multiple lines if the last condition is the one to push the line past the
width limit.

Fix the off-by-one error that caused this, and add a test-case for it.
2017-12-23 01:32:55 +00:00
David Wood e343521276 Add assert_eq! to special-cased macros
Allows for this form of assert_eq! macros:
```rust
assert_eq!(
    left.id, right.id,
    "IDs are not equal: {:?} {:?}",
    left, right
);
```

Also allows for assert! macros to have the format arguments split across
multiple lines even if the assert condition is not simple:
```rust
assert!(
    result >= 42,
    "The result must be at least 42: {:?}",
    result, result.code, context
);
```
2017-12-23 01:06:17 +00:00
Seiichi Uchida 0909ecbac7 Add tests for macro in pattern position 2017-12-10 00:21:49 +09:00
David Alber 9a25458179 Adding tests for assert!, write!, and writeln! 2017-12-06 22:42:33 -08:00
David Alber eb42956e84 Adding print! specially-formatted format!-like macros list
This commit corrects what appears to be an accidental inclusion of
`panic!` twice in the list resulting from the union of ffbe52e and
aeb3398.
2017-12-05 16:56:56 -08:00
David Alber 8c51122f54 Adding tests for all specially-formatted format!-like macros 2017-12-05 16:56:36 -08:00
Seiichi Uchida ab8129069a Add a test for #1209 2017-12-05 08:41:10 +09:00
topecongiro 72cac8beae Add a test for special case macros like format! and assert! 2017-12-03 11:34:18 +09:00
topecongiro 5aaa00a929 Add a test for #2214 2017-11-30 22:12:55 +09:00
topecongiro daf4789b76 Add a test for #2087 2017-10-27 16:35:40 +09:00
topecongiro 00f8610d9b Add a test 2017-10-05 19:44:45 +09:00
topecongiro 848d4559e1 Enhance macro rewrite 2017-08-31 13:52:13 +09:00
topecongiro 343b315830 Handle macros with tabs 2017-08-27 13:44:49 +09:00
topecongiro 24efc3a934 Ignore empty lines inside arguments of macro with brace 2017-08-25 22:35:22 +09:00
Seiichi Uchida a18a40cbc1 Add indent to macro we could not format 2017-08-21 23:19:01 +09:00
topecongiro f062544cdd Update tests inside macro.rs
I moved around some tests in order to prevent rustfmt from failing to format
tests after macro invocations whose arguments cannot be parsed as expressions.
2017-06-23 13:03:37 +09:00
Seiichi Uchida 6afb0e856c Avoid line break when rhs of assignment is an invalid macro 2017-06-18 14:25:21 +09:00
Nick Cameron b79094262f Merge pull request #1604 from topecongiro/comment-group
Format comments with different opening in different manner
2017-05-30 08:53:22 +12:00
topecongiro 72c04facd2 Add tests for issues which can be closed on the current master
This PR adds tests for #325, #1092,  #1214, #1278, #1329 and #1427.
2017-05-28 13:24:05 +09:00
topecongiro 99c2eab5ac Allow attributes on expressions 2017-05-28 11:44:41 +09:00
topecongiro e3eec44690 Return original snippet when macro contains invalid syntax 2017-05-24 07:24:31 +09:00
topecongiro dc8d3aa23a Update tests 2017-05-23 11:39:31 +09:00
topecongiro d16a0a399e Implement 'vec![expr; expr]' 2017-05-23 11:32:09 +09:00
Seiichi Uchida 79ba34c607 Use offset_left for rewrite_unary_prefix 2017-05-15 22:55:01 +09:00
Nick Cameron 49e86a1e65 Handle semicolons in macro statements
Fixes #1279
2017-01-18 10:38:46 +13:00
Nick Cameron 846d7ad387 make rustfmt-normalize_comments false by default 2017-01-16 14:50:27 +13:00
Bekh-Ivanov Aleksey 935286755c Stripping trailing commas and spaces from vec! elements (#1219)
* Stripping trailing commas and spaces from `vec!` elements

* Stripping trailing commas and spaces ONLY from `vec!` elements

* Added comment
2016-11-14 17:42:15 +13:00
Philip Craig c4a7a7108e Preserve macro formatting if we can't rewrite it 2016-10-03 14:14:56 +10:00
Nick Cameron 9188ec0f7f Bail out on recovered errors. (#965)
Closes #915
Closes #930
Closes #931
2016-04-27 21:08:44 +02:00
Marcus Klaas de Vries 50820c6a43 Merge pull request #883 from marcusklaas/macro-with-name
Properly format macro's with an extra ident
2016-03-30 02:03:28 +02:00
Marcus Klaas 9e5c0390a0 Properly format macro's with an extra ident 2016-03-29 23:16:40 +02:00
Marcus Klaas 0e0cf976c9 Fix issues with empty macros with curly braces 2016-03-27 13:44:40 +02:00
Kevin Yeh 7fc70a1753 Add item macro tests 2016-01-24 13:11:18 -06:00
Kevin Yeh f01ed6f507 Format item macros 2016-01-22 13:43:18 -06:00
Eli Friedman 1c235de97d Fix crash speculatively parsing macro arguments as expressions.
The problem is essentially that if we try to parse a token tree using a
CodeMap different from the one the tree was originally parsed with,
spans become nonsense. Since CodeMaps can't be cloned, we're basically
forced to use the original ParseSess for additional parsing.

Ideally, rustfmt would be a bit more clever and figure out how to parse
macro arguments based on the definition of the macro itself, rather than
just guessing that a particular token sequence looks like an expression,
but this is good enough for now.

Fixes #538.
2015-10-27 23:41:32 -07:00
Marcus Klaas f751356910 Format macro invocations 2015-09-16 20:26:14 +02:00