mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 04:28:00 +00:00
Add regression test for issue 2844
error[E0424]: expected value, found module `self`
--> test_suite/tests/regression/issue2844.rs:13:19
|
5 | #[derive(Serialize, Deserialize)]
| --------- this function has a `self` parameter, but a macro invocation can only access identifiers it receives from parameters
...
13 | declare_in_macro!("with");
| ^^^^^^ `self` value is a keyword only available in methods with a `self` parameter
error[E0425]: cannot find value `__s` in this scope
--> test_suite/tests/regression/issue2844.rs:13:19
|
13 | declare_in_macro!("with");
| ^^^^^^ not found in this scope
error[E0425]: cannot find value `__deserializer` in this scope
--> test_suite/tests/regression/issue2844.rs:13:19
|
13 | declare_in_macro!("with");
| ^^^^^^ not found in this scope
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
|
||||
macro_rules! declare_in_macro {
|
||||
($with:literal) => {
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct S {
|
||||
#[serde(with = $with)]
|
||||
f: i32,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
declare_in_macro!("with");
|
||||
|
||||
mod with {
|
||||
use serde::{Deserializer, Serializer};
|
||||
|
||||
pub fn serialize<S>(_: &i32, _: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
unimplemented!()
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(_: D) -> Result<i32, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user