diff --git a/src/librustc_typeck/diagnostics.rs b/src/librustc_typeck/diagnostics.rs index 7598751c8fe..eee53f30428 100644 --- a/src/librustc_typeck/diagnostics.rs +++ b/src/librustc_typeck/diagnostics.rs @@ -1864,12 +1864,35 @@ fn main() { // error: main function is not allowed to have type parameters "##, E0132: r##" +A function with the `start` attribute was declared with type parameters. + +Erroneous code example: + +```compile_fail +#![feature(start)] + +#[start] +fn f() {} +``` + It is not possible to declare type parameters on a function that has the `start` -attribute. Such a function must have the following type signature: +attribute. Such a function must have the following type signature (for more +information: http://doc.rust-lang.org/stable/book/no-stdlib.html): ```ignore fn(isize, *const *const u8) -> isize; ``` + +Example: + +``` +#![feature(start)] + +#[start] +fn my_start(argc: isize, argv: *const *const u8) -> isize { + 0 +} +``` "##, E0163: r##"