diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index af1e61a5..21f150aa 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -38,7 +38,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: - toolchain: nightly-2023-04-20 + toolchain: nightly-2023-06-01 components: cargo, clippy, rustfmt - run: rustc -vV - run: cargo build diff --git a/.github/workflows/rust_bors.yml b/.github/workflows/rust_bors.yml index 6f000cd5..3eac15db 100644 --- a/.github/workflows/rust_bors.yml +++ b/.github/workflows/rust_bors.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: - toolchain: nightly-2023-04-20 + toolchain: nightly-2023-06-01 components: cargo, clippy, rustfmt - run: rustc -vV - run: cargo build diff --git a/Cargo.toml b/Cargo.toml index ecc7fc1c..b994fc27 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ members = [ # This is needed for rust-analyzer, uitests and other tools "marker_lints", ] +resolver = "2" [workspace.metadata.marker.lints] marker_lints = { path = "marker_lints" } diff --git a/cargo-marker/src/driver.rs b/cargo-marker/src/driver.rs index 4708d1bb..b5136625 100644 --- a/cargo-marker/src/driver.rs +++ b/cargo-marker/src/driver.rs @@ -21,7 +21,7 @@ use crate::{cli::Flags, ExitStatus}; /// This is the driver version and toolchain, that is used by the setup command /// to install the driver. static DEFAULT_DRIVER_INFO: Lazy = Lazy::new(|| RustcDriverInfo { - toolchain: "nightly-2023-04-20".to_string(), + toolchain: "nightly-2023-06-01".to_string(), version: "0.1.0".to_string(), api_version: "0.1.0".to_string(), }); diff --git a/marker_driver_rustc/src/context.rs b/marker_driver_rustc/src/context.rs index ff0915c3..c837bb89 100644 --- a/marker_driver_rustc/src/context.rs +++ b/marker_driver_rustc/src/context.rs @@ -88,27 +88,27 @@ impl<'ast, 'tcx: 'ast> DriverContext<'ast> for RustcContext<'ast, 'tcx> { lint, id, self.rustc_converter.to_span(diag.span), - diag.msg(), + diag.msg().to_string(), |builder| { for part in diag.parts.get() { match part { marker_api::diagnostic::DiagnosticPart::Help { msg } => { - builder.help(msg.get()); + builder.help(msg.get().to_string()); }, marker_api::diagnostic::DiagnosticPart::HelpSpan { msg, span } => { - builder.span_help(self.rustc_converter.to_span(span), msg.get()); + builder.span_help(self.rustc_converter.to_span(span), msg.get().to_string()); }, marker_api::diagnostic::DiagnosticPart::Note { msg } => { - builder.note(msg.get()); + builder.note(msg.get().to_string()); }, marker_api::diagnostic::DiagnosticPart::NoteSpan { msg, span } => { - builder.span_note(self.rustc_converter.to_span(span), msg.get()); + builder.span_note(self.rustc_converter.to_span(span), msg.get().to_string()); }, marker_api::diagnostic::DiagnosticPart::Suggestion { msg, span, sugg, app } => { builder.span_suggestion( self.rustc_converter.to_span(span), - msg.get(), - sugg.get(), + msg.get().to_string(), + sugg.get().to_string(), self.rustc_converter.to_applicability(*app), ); }, diff --git a/marker_driver_rustc/src/conversion/marker/expr.rs b/marker_driver_rustc/src/conversion/marker/expr.rs index f25e5e25..131587e3 100644 --- a/marker_driver_rustc/src/conversion/marker/expr.rs +++ b/marker_driver_rustc/src/conversion/marker/expr.rs @@ -292,6 +292,10 @@ impl<'ast, 'tcx> MarkerConverterInner<'ast, 'tcx> { StrLitData::Bytes(self.alloc_slice(bytes.iter().copied()).into()), ) })), + // Still unstable see: https://github.com/rust-lang/rust/issues/105723 + rustc_ast::LitKind::CStr(_, _) => { + ExprKind::Unstable(self.alloc(UnstableExpr::new(data, ExprPrecedence::Lit))) + }, rustc_ast::LitKind::Byte(value) => { ExprKind::IntLit(self.alloc(IntLitExpr::new(data, u128::from(*value), None))) }, diff --git a/marker_driver_rustc/src/main.rs b/marker_driver_rustc/src/main.rs index 565e75c8..9446ae92 100644 --- a/marker_driver_rustc/src/main.rs +++ b/marker_driver_rustc/src/main.rs @@ -40,7 +40,7 @@ use std::ops::Deref; use std::path::{Path, PathBuf}; use std::process::{exit, Command}; -const RUSTC_TOOLCHAIN_VERSION: &str = "nightly-2023-04-20"; +const RUSTC_TOOLCHAIN_VERSION: &str = "nightly-2023-06-01"; struct DefaultCallbacks; impl rustc_driver::Callbacks for DefaultCallbacks {} diff --git a/rust-toolchain b/rust-toolchain index 33a87e96..9612e9ee 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2023-04-20" +channel = "nightly-2023-06-01" components = ["cargo", "llvm-tools-preview", "rust-src", "rust-std", "rustc", "rustc-dev", "rustfmt"] # This has to be synced with the toolchain in `github/workflows` diff --git a/util/update-toolchain.sh b/util/update-toolchain.sh index 8cf33e2c..e231e712 100755 --- a/util/update-toolchain.sh +++ b/util/update-toolchain.sh @@ -2,7 +2,7 @@ if [[ $1 == nightly-????-??-?? ]] then - sed -i "s/nightly-2023-04-20/$1/g" ./marker_driver_rustc/src/main.rs ./rust-toolchain .github/workflows/* ./util/update-toolchain.sh cargo-marker/src/driver.rs + sed -i "s/nightly-2023-06-01/$1/g" ./marker_driver_rustc/src/main.rs ./rust-toolchain .github/workflows/* ./util/update-toolchain.sh cargo-marker/src/driver.rs else echo "Please enter a valid toolchain like \`nightly-2022-01-01\`" fi;