Stabilize Literal::c_string

This commit is contained in:
Slanterns 2024-04-04 05:04:27 +08:00
parent 61ac7812c6
commit fbc56dfac1
No known key found for this signature in database
GPG key ID: 1AA37EE7FAAE433A
4 changed files with 1 additions and 26 deletions

View file

@ -1374,7 +1374,7 @@ pub fn byte_string(bytes: &[u8]) -> Literal {
}
/// C string literal.
#[unstable(feature = "proc_macro_c_str_literals", issue = "119750")]
#[stable(feature = "proc_macro_c_str_literals", since = "CURRENT_RUSTC_VERSION")]
pub fn c_string(string: &CStr) -> Literal {
let string = string.to_bytes().escape_ascii().to_string();
Literal::new(bridge::LitKind::CStr, &string, None)

View file

@ -1,11 +0,0 @@
//@ edition: 2021
//@ force-host
#![crate_type = "proc-macro"]
extern crate proc_macro;
use proc_macro::Literal;
fn test() {
Literal::c_string(c"a"); //~ ERROR use of unstable library feature 'proc_macro_c_str_literals'
}

View file

@ -1,13 +0,0 @@
error[E0658]: use of unstable library feature 'proc_macro_c_str_literals'
--> $DIR/feature-gate-proc_macro_c_str_literals.rs:10:5
|
LL | Literal::c_string(c"a");
| ^^^^^^^^^^^^^^^^^
|
= note: see issue #119750 <https://github.com/rust-lang/rust/issues/119750> for more information
= help: add `#![feature(proc_macro_c_str_literals)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0658`.

View file

@ -5,7 +5,6 @@
#![crate_type = "proc-macro"]
#![crate_name = "proc_macro_api_tests"]
#![feature(proc_macro_span)]
#![feature(proc_macro_c_str_literals)]
#![deny(dead_code)] // catch if a test function is never called
extern crate proc_macro;