Fix #[Object] macro panic with default u32. #361

This commit is contained in:
Sunli 2020-12-28 18:36:01 +08:00
parent 6b10e90de0
commit 8f32e8e81e
2 changed files with 8 additions and 3 deletions

View File

@ -309,11 +309,11 @@ fn generate_default_value(lit: &Lit) -> GeneratorResult<TokenStream> {
}
Lit::Int(value) => {
let value = value.base10_parse::<i32>()?;
Ok(quote!({ #value as ::std::primitive::i32 }))
Ok(quote!({ ::std::convert::TryInto::try_into(#value).unwrap() }))
}
Lit::Float(value) => {
let value = value.base10_parse::<f64>()?;
Ok(quote!({ #value as ::std::primitive::f64 }))
Ok(quote!({ ::std::convert::TryInto::try_into(#value) }))
}
Lit::Bool(value) => {
let value = value.value;

View File

@ -17,9 +17,13 @@ pub async fn test_default_value_arg() {
async fn value3(&self, #[graphql(default_with = "1 + 2 + 3")] input: i32) -> i32 {
input
}
async fn value4(&self, #[graphql(default = 100)] input: u32) -> u32 {
input
}
}
let query = "{ value1 value2 value3 }";
let query = "{ value1 value2 value3 value4 }";
let schema = Schema::new(Query, EmptyMutation, EmptySubscription);
assert_eq!(
schema.execute(query).await.data,
@ -27,6 +31,7 @@ pub async fn test_default_value_arg() {
"value1": 100,
"value2": 0,
"value3": 6,
"value4": 100,
})
);