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:
Bastian Köcher
2020-10-21 23:50:07 +02:00
committed by GitHub
parent 96e939f42e
commit f450a6d74c
3 changed files with 24 additions and 0 deletions
@@ -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 | | }
| |_________^