about summary refs log tree commit diff
path: root/src/libsyntax_ext/format.rs
AgeCommit message (Collapse)AuthorLines
2018-07-29Replace push loops with collect() and extend() where possibleljedrz-8/+7
2018-07-24Add span label for format str missing specifierEsteban Küber-8/+11
2018-07-24Use suggestions for `printf` formatEsteban Küber-1/+16
2018-07-24Reword missing formatting arguments labelEsteban Küber-1/+1
2018-07-23Only point at inside of string literals if they're actually string literalsEsteban Küber-6/+24
2018-07-23Point only at invalid positional argumentsEsteban Küber-62/+76
2018-07-23Point at incorrect named arg in format stringEsteban Küber-2/+19
2018-07-22Point at internal span in format stringEsteban Küber-12/+22
2018-07-21fix logic bugEsteban Küber-2/+2
2018-07-21Remove dependency on `libsyntax`Esteban Küber-1/+5
2018-07-21Gate `format_args_nll` behind feature flagEsteban Küber-0/+15
2018-07-21Suggest space separated format str literalEsteban Küber-1/+1
2018-07-19Use correct spans for format string errorsEsteban Küber-1/+1
When encountering format string errors in a raw string, or regular string literal with embedded newlines, account for the positional change to use correct spans. :drive by fix: 🚗
2018-07-19rework printlnEsteban Küber-2/+20
2018-07-19Improve suggestion for missing fmt str in printlnEsteban Küber-6/+22
Avoid using `concat!(fmt, "\n")` to improve the diagnostics being emitted when the first `println!()` argument isn't a formatting string literal.
2018-07-12Deny bare trait objects in src/libsyntax_extljedrz-1/+1
2018-05-26Add `Ident::as_str` helperVadim Petrochenkov-1/+1
2018-05-17Rollup merge of #50610 - estebank:fmt-str, r=KimundiMark Simulacrum-3/+6
Improve format string errors Point at format string position inside the formatting string: ``` error: invalid format string: unmatched `}` found --> $DIR/format-string-error.rs:21:22 | LL | let _ = format!("}"); | ^ unmatched `}` in format string ``` Explain that argument names can't start with an underscore: ``` error: invalid format string: invalid argument name `_foo` --> $DIR/format-string-error.rs:15:23 | LL | let _ = format!("{_foo}", _foo = 6usize); | ^^^^ invalid argument name in format string | = note: argument names cannot start with an underscore ``` Fix #23476. The more accurate spans will only be seen when using `format!` directly, when using `println!` the diagnostics machinery makes the span be the entire statement.
2018-05-17Rename trans to codegen everywhere.Irina Popa-14/+14
2018-05-10Improve format string errorsEsteban Küber-3/+6
- Point at format string position inside the formatting string - Explain that argument names can't start with an underscore
2018-04-24Gensym arguments for format macroJames Sanderson-7/+9
2018-04-06Use `Span::apply_mark` where possibleVadim Petrochenkov-3/+3
2018-03-18Initial implementation of RFC 2151, Raw IdentifiersLymia Aluysia-1/+1
2018-03-05while let all the thingsleonardo.yvens-11/+6
2018-01-16Add secondary span pointing at the statement (error span)Esteban Küber-2/+6
2018-01-15Point at unused arguments for format stringEsteban Küber-10/+2
Avoid overlapping spans by only pointing at the arguments that are not being used in the argument string. Enable libsyntax to have diagnostics with multiple primary spans by accepting `Into<MultiSpan>` instead of `Span`.
2017-11-09Retain information on whether a format argument has explicit positionTommy Ip-16/+34
2017-11-06Make format! positional argument errors clearTommy Ip-8/+41
2017-09-10Use rvalue promotion to 'static instead of static items.Eduard-Mihai Burtescu-36/+3
2017-08-30Make fields of `Span` privateVadim Petrochenkov-7/+5
2017-08-15use field init shorthand EVERYWHEREZack M. Davis-6/+6
Like #43008 (f668999), but _much more aggressive_.
2017-08-01Fixed extra cases found in better checking.Isaac van Bakel-1/+1
2017-07-28format!: use a dummy span rather than callee span for the span base for ↵Nick Cameron-3/+5
temporary variables
2017-07-18Change the error message for multiple unused print paramsPerry Fraser-2/+6
2017-06-26Simplify `hygiene::Mark` application, andJeffrey Seyfried-5/+8
remove variant `Token::SubstNt` in favor of `quoted::TokenTree::MetaVar`.
2017-06-23Removed as many "```ignore" as possible.kennytm-1/+2
Replaced by adding extra imports, adding hidden code (`# ...`), modifying examples to be runnable (sorry Homura), specifying non-Rust code, and converting to should_panic, no_run, or compile_fail. Remaining "```ignore"s received an explanation why they are being ignored.
2017-05-25Hygienize lifetimes.Jeffrey Seyfried-2/+2
2017-03-29Refactor how spans are combined in the parser.Jeffrey Seyfried-11/+4
2017-03-29Merge `ExpnId` and `SyntaxContext`.Jeffrey Seyfried-1/+2
2016-11-21Use `Symbol` instead of `InternedString` in the AST, HIR, and various other ↵Jeffrey Seyfried-4/+4
places.
2016-11-20Move `syntax::util::interner` -> `syntax::symbol`, cleanup.Jeffrey Seyfried-2/+3
2016-11-12Rollup merge of #37695 - estebank:unescaped-curly, r=alexcrichtonEduard-Mihai Burtescu-2/+6
On fmt string with unescaped `{` note how to escape On cases of malformed format strings where a `{` hasn't been properly escaped, like `println!("{");`, present a NOTE explaining how to escape the `{` char. Fix #34300.
2016-11-11On fmt string with unescaped `{` note how to escapeEsteban Küber-2/+6
On cases of malformed format strings where a `{` hasn't been properly escaped, like `println!("{");`, present a note explaining how to escape the `{` char.
2016-11-11Add foreign formatting directive detection.Daniel Keep-2/+74
This teaches `format_args!` how to interpret format printf- and shell-style format directives. This is used in cases where there are unused formatting arguments, and the reason for that *might* be because the programmer is trying to use the wrong kind of formatting string. This was prompted by an issue encountered by simulacrum on the #rust IRC channel. In short: although `println!` told them that they weren't using all of the conversion arguments, the problem was in using printf-syle directives rather than ones `println!` would undertand. Where possible, `format_args!` will tell the programmer what they should use instead. For example, it will suggest replacing `%05d` with `{:0>5}`, or `%2$.*3$s` with `{1:.3$}`. Even if it cannot suggest a replacement, it will explicitly note that Rust does not support that style of directive, and direct the user to the `std::fmt` documentation.
2016-09-28libsyntax: clearer names for some AST partsJonas Schievink-1/+1
This applies the HIR changes from the previous commits to the AST, and is thus a syntax-[breaking-change] Renames `PatKind::Vec` to `PatKind::Slice`, since these are called slice patterns, not vec patterns. Renames `TyKind::Vec`, which represents the type `[T]`, to `TyKind::Slice`. Renames `TyKind::FixedLengthVec` to `TyKind::Array`.
2016-09-13Avoid needless reexpansions.Jeffrey Seyfried-11/+8
2016-08-12run rustfmt on libsyntax_ext folderSrinivas Reddy Thatiparthy-68/+89
2016-07-29syntax_ext: format: fix ICE with bad named argumentsWang Xuerui-1/+3
2016-07-14syntax_ext: format: better code documentationWang Xuerui-12/+46
2016-07-14syntax_ext: format: de-duplicate argument objectsWang Xuerui-12/+31