2018-09-16 07:33:16 +00:00
|
|
|
error: expected `fn`
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:6:1
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
|
|
|
6 | struct Catcher(String);
|
|
|
|
| ^^^^^^
|
|
|
|
|
|
|
|
|
= help: `#[catch]` can only be used on functions
|
|
|
|
|
|
|
|
error: expected `fn`
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:9:7
|
2020-07-21 17:23:59 +00:00
|
|
|
|
|
|
|
|
9 | const CATCH: &str = "Catcher";
|
|
|
|
| ^^^^^
|
|
|
|
|
|
|
|
|
= help: `#[catch]` can only be used on functions
|
2018-09-16 07:33:16 +00:00
|
|
|
|
Revamp codegen, fixing inconscpicuous bugs.
This commit completely revamps the way that codegen handles route URI
"parameters". The changes are largely internal. In summary, codegen code
is better organized, better written, and less subject to error.
There are three breaking changes:
* `path` is now `uri` in `route` attribute: `#[route(GET, path = "..")]`
becomes `#[route(GET, uri = "..")]`.
* the order of execution for path and query guards relative to
each-other is now unspecified
* URI normalization now normalizes the query part as well.
Several error messages were improved. A couple of bugs were fixed:
* Prior to this commit, Rocket would optimistically try to parse every
segment of a URI as an ident, in case one was needed in the future.
A bug in rustc results in codegen "panicking" if the segment
couldn't _lex_ as an ident. This panic didn't manifest until far
after expansion, unfortunately. This wasn't a problem before as we
only allowed ident-like segments (ASCII), but now that we allow any
UTF-8, the bug surfaced. This was fixed by never attempting to parse
non-idents as idents.
* Prior to this commit, it was impossible to generate typed URIs for
paths that ignored path parameters via the recently added syntax
`<_>`: the macro would panic. This was fixed by, well, handling
these ignored parameters.
Some minor additions:
* Added `RawStr::find()`, expanding its `Pattern`-based API.
* Added an internal mechanism to dynamically determine if a `UriPart`
is `Path` or `Query`.
2021-03-02 12:01:33 +00:00
|
|
|
error: expected integer or `default`, found string literal
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:11:9
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
11 | #[catch("404")]
|
2018-09-16 07:33:16 +00:00
|
|
|
| ^^^^^
|
|
|
|
|
|
2020-07-30 06:07:22 +00:00
|
|
|
= help: `#[catch]` expects a status code int or `default`: `#[catch(404)]` or `#[catch(default)]`
|
2018-09-16 07:33:16 +00:00
|
|
|
|
2018-10-04 10:54:46 +00:00
|
|
|
error: unexpected keyed parameter: expected literal or identifier
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:14:9
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
14 | #[catch(code = "404")]
|
2018-09-16 07:33:16 +00:00
|
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
|
2020-07-30 06:07:22 +00:00
|
|
|
= help: `#[catch]` expects a status code int or `default`: `#[catch(404)]` or `#[catch(default)]`
|
2018-09-16 07:33:16 +00:00
|
|
|
|
2018-10-04 10:54:46 +00:00
|
|
|
error: unexpected keyed parameter: expected literal or identifier
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:17:9
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
17 | #[catch(code = 404)]
|
2018-09-16 07:33:16 +00:00
|
|
|
| ^^^^^^^^^^
|
|
|
|
|
|
2020-07-30 06:07:22 +00:00
|
|
|
= help: `#[catch]` expects a status code int or `default`: `#[catch(404)]` or `#[catch(default)]`
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
|
|
error: status must be in range [100, 599]
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:20:9
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
20 | #[catch(99)]
|
2018-09-16 07:33:16 +00:00
|
|
|
| ^^
|
|
|
|
|
|
2020-07-30 06:07:22 +00:00
|
|
|
= help: `#[catch]` expects a status code int or `default`: `#[catch(404)]` or `#[catch(default)]`
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
|
|
error: status must be in range [100, 599]
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:23:9
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
23 | #[catch(600)]
|
2018-09-16 07:33:16 +00:00
|
|
|
| ^^^
|
|
|
|
|
|
2020-07-30 06:07:22 +00:00
|
|
|
= help: `#[catch]` expects a status code int or `default`: `#[catch(404)]` or `#[catch(default)]`
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
|
|
error: unexpected attribute parameter: `message`
|
2022-02-16 18:08:55 +00:00
|
|
|
--> tests/ui-fail-nightly/catch.rs:26:14
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
26 | #[catch(400, message = "foo")]
|
2018-09-16 07:33:16 +00:00
|
|
|
| ^^^^^^^^^^^^^^^
|
|
|
|
|
|
2020-07-30 06:07:22 +00:00
|
|
|
= help: `#[catch]` expects a status code int or `default`: `#[catch(404)]` or `#[catch(default)]`
|
2018-09-16 07:33:16 +00:00
|
|
|
|
2022-04-19 04:14:30 +00:00
|
|
|
error[E0308]: arguments to this function are incorrect
|
|
|
|
--> tests/ui-fail-nightly/catch.rs:30:4
|
2018-09-16 07:33:16 +00:00
|
|
|
|
|
2020-07-21 17:23:59 +00:00
|
|
|
30 | fn f3(_request: &Request, other: bool) { }
|
2022-04-19 04:14:30 +00:00
|
|
|
| ^^ -------- ---- an argument of type `bool` is missing
|
|
|
|
| |
|
|
|
|
| argument of type `&rocket::Request<'_>` unexpected
|
|
|
|
|
|
|
|
|
note: function defined here
|
|
|
|
--> tests/ui-fail-nightly/catch.rs:30:4
|
2020-07-30 06:07:22 +00:00
|
|
|
|
|
|
|
|
30 | fn f3(_request: &Request, other: bool) { }
|
2022-04-19 04:14:30 +00:00
|
|
|
| ^^---------------------
|
|
|
|
help: did you mean
|
|
|
|
|
|
|
|
|
29 | f3(bool, {bool})
|
|
|
|
|
|