mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-24 06:35:45 +00:00
Make decl_runtime_apis! fail on methods with default implementation (#7371)
* Make `decl_runtime_apis!` fail on methods with default implementation Runtime api functions are not allowed to have default implementations. This fixes this by throwing an error when we detect such a function. * Update primitives/api/proc-macro/src/decl_runtime_apis.rs Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * Update primitives/api/test/tests/ui/no_default_implementation.stderr Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
This commit is contained in:
@@ -912,6 +912,13 @@ impl CheckTraitDecl {
|
|||||||
.entry(method.sig.ident.clone())
|
.entry(method.sig.ident.clone())
|
||||||
.or_default()
|
.or_default()
|
||||||
.push(changed_in);
|
.push(changed_in);
|
||||||
|
|
||||||
|
if method.default.is_some() {
|
||||||
|
self.errors.push(Error::new(
|
||||||
|
method.default.span(),
|
||||||
|
"A runtime API function cannot have a default implementation!",
|
||||||
|
));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
method_to_signature_changed.into_iter().for_each(|(f, changed)| {
|
method_to_signature_changed.into_iter().for_each(|(f, changed)| {
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
sp_api::decl_runtime_apis! {
|
||||||
|
pub trait Api {
|
||||||
|
fn test() {
|
||||||
|
println!("Hey, I'm a default implementation!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
error: A runtime API function cannot have a default implementation!
|
||||||
|
--> $DIR/no_default_implementation.rs:3:13
|
||||||
|
|
|
||||||
|
3 | fn test() {
|
||||||
|
| ___________________^
|
||||||
|
4 | | println!("Hey, I'm a default implementation!");
|
||||||
|
5 | | }
|
||||||
|
| |_________^
|
||||||
Reference in New Issue
Block a user