diff options
| author | long-long-float <niinikazuki@yahoo.co.jp> | 2024-02-11 02:43:44 +0900 |
|---|---|---|
| committer | long-long-float <niinikazuki@yahoo.co.jp> | 2024-02-11 02:43:44 +0900 |
| commit | 44616e11d080f7051a05ae6977c303b42efdcf89 (patch) | |
| tree | 396847e66b9ddab67aec1e3b013ea8e527cf325d | |
| parent | 42c4f1024a6681c307f4b34e6ea4bc12ce38ce31 (diff) | |
| download | rust-44616e11d080f7051a05ae6977c303b42efdcf89.tar.gz rust-44616e11d080f7051a05ae6977c303b42efdcf89.zip | |
Add test for the issue
| -rw-r--r-- | tests/ui/proc-macro/auxiliary/issue-118809.rs | 20 | ||||
| -rw-r--r-- | tests/ui/proc-macro/issue-118809.rs | 10 | ||||
| -rw-r--r-- | tests/ui/proc-macro/issue-118809.stderr | 21 |
3 files changed, 51 insertions, 0 deletions
diff --git a/tests/ui/proc-macro/auxiliary/issue-118809.rs b/tests/ui/proc-macro/auxiliary/issue-118809.rs new file mode 100644 index 00000000000..029b58c6d0c --- /dev/null +++ b/tests/ui/proc-macro/auxiliary/issue-118809.rs @@ -0,0 +1,20 @@ +// force-host +// no-prefer-dynamic + +#![crate_type = "proc-macro"] + +extern crate proc_macro; +use proc_macro::TokenStream; + +#[proc_macro_derive(Deserialize)] +pub fn deserialize_derive(input: TokenStream) -> TokenStream { + "impl Build { + fn deserialize() -> Option<u64> { + let x: Option<u32> = Some(0); + Some(x? + 1) + } + } + " + .parse() + .unwrap() +} diff --git a/tests/ui/proc-macro/issue-118809.rs b/tests/ui/proc-macro/issue-118809.rs new file mode 100644 index 00000000000..732bf19c173 --- /dev/null +++ b/tests/ui/proc-macro/issue-118809.rs @@ -0,0 +1,10 @@ +// aux-build: issue-118809.rs + +#[macro_use] +extern crate issue_118809; + +#[derive(Deserialize)] //~ ERROR mismatched types [E0308] +pub struct Build { +} + +fn main() {} diff --git a/tests/ui/proc-macro/issue-118809.stderr b/tests/ui/proc-macro/issue-118809.stderr new file mode 100644 index 00000000000..30b09fd4006 --- /dev/null +++ b/tests/ui/proc-macro/issue-118809.stderr @@ -0,0 +1,21 @@ +error[E0308]: mismatched types + --> $DIR/issue-118809.rs:6:10 + | +LL | #[derive(Deserialize)] + | ^^^^^^^^^^^ + | | + | expected `u64`, found `u32` + | arguments to this enum variant are incorrect + | +help: the type constructed contains `u32` due to the type of the argument passed + --> $DIR/issue-118809.rs:6:10 + | +LL | #[derive(Deserialize)] + | ^^^^^^^^^^^ this argument influences the type of `Some` +note: tuple variant defined here + --> $SRC_DIR/core/src/option.rs:LL:COL + = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0308`. |
