Auto merge of #112711 - Emilgardis:lit_byte_char, r=dtolnay
implement Literal::byte_character without this, the only way to create a `LitKind::Byte` is by doing `"b'a'".parse::<Literal>()`, this solves that by enabling `Literal::byte_character(b'a')` cc #71358 The tracking issue is #115268
This commit is contained in:
commit
acfb46db5a
5 changed files with 34 additions and 0 deletions
|
|
@ -0,0 +1,10 @@
|
|||
// force-host
|
||||
#![crate_type = "proc-macro"]
|
||||
|
||||
extern crate proc_macro;
|
||||
|
||||
use proc_macro::Literal;
|
||||
|
||||
fn test() {
|
||||
Literal::byte_character(b'a'); //~ ERROR use of unstable library feature 'proc_macro_byte_character'
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
error[E0658]: use of unstable library feature 'proc_macro_byte_character'
|
||||
--> $DIR/feature-gate-proc_macro_byte_character.rs:9:5
|
||||
|
|
||||
LL | Literal::byte_character(b'a');
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #115268 <https://github.com/rust-lang/rust/issues/115268> for more information
|
||||
= help: add `#![feature(proc_macro_byte_character)]` to the crate attributes to enable
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
#![crate_type = "proc-macro"]
|
||||
#![crate_name = "proc_macro_api_tests"]
|
||||
#![feature(proc_macro_span)]
|
||||
#![feature(proc_macro_byte_character)]
|
||||
#![deny(dead_code)] // catch if a test function is never called
|
||||
|
||||
extern crate proc_macro;
|
||||
|
|
|
|||
|
|
@ -29,12 +29,16 @@ fn test_display_literal() {
|
|||
assert_eq!(Literal::character('\'').to_string(), "'\\''");
|
||||
assert_eq!(Literal::character('"').to_string(), "'\"'");
|
||||
assert_eq!(Literal::character('\u{1}').to_string(), "'\\u{1}'");
|
||||
|
||||
assert_eq!(Literal::byte_character(b'a').to_string(), "b'a'");
|
||||
assert_eq!(Literal::byte_character(0).to_string(), "b'\\x00'");
|
||||
}
|
||||
|
||||
fn test_parse_literal() {
|
||||
assert_eq!("1".parse::<Literal>().unwrap().to_string(), "1");
|
||||
assert_eq!("1.0".parse::<Literal>().unwrap().to_string(), "1.0");
|
||||
assert_eq!("'a'".parse::<Literal>().unwrap().to_string(), "'a'");
|
||||
assert_eq!("b'a'".parse::<Literal>().unwrap().to_string(), "b'a'");
|
||||
assert_eq!("\"\n\"".parse::<Literal>().unwrap().to_string(), "\"\n\"");
|
||||
assert_eq!("b\"\"".parse::<Literal>().unwrap().to_string(), "b\"\"");
|
||||
assert_eq!("r##\"\"##".parse::<Literal>().unwrap().to_string(), "r##\"\"##");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue