mirror of https://github.com/rwf2/Rocket.git
Convert several 'compilefail' tests to 'ui' tests.
This commit is contained in:
parent
78cc1bda7e
commit
63169599a7
|
@ -164,22 +164,24 @@ pub fn param_to_ident(ecx: &ExtCtxt, s: Spanned<&str>) -> Option<Spanned<Ident>>
|
|||
}
|
||||
|
||||
fn parse_method(ecx: &ExtCtxt, meta_item: &NestedMetaItem) -> Spanned<Method> {
|
||||
let valid_methods = "valid methods are: `GET`, `PUT`, `POST`, `DELETE`, `PATCH`";
|
||||
let default_method = dummy_spanned(Method::Get);
|
||||
|
||||
if let Some(word) = meta_item.word() {
|
||||
if let Ok(method) = Method::from_str(&word.name().as_str()) {
|
||||
if is_valid_method(method) {
|
||||
return span(method, word.span());
|
||||
}
|
||||
} else {
|
||||
let msg = format!("'{}' is not a valid HTTP method.", word.name());
|
||||
ecx.span_err(word.span(), &msg);
|
||||
}
|
||||
|
||||
let msg = format!("'{}' is not a valid method", word.name());
|
||||
ecx.struct_span_err(word.span, &msg).help(valid_methods).emit();
|
||||
return default_method;
|
||||
}
|
||||
|
||||
// Fallthrough. Return default method.
|
||||
ecx.struct_span_err(meta_item.span, "expected a valid HTTP method")
|
||||
.help("valid methods are: GET, PUT, POST, DELETE, PATCH")
|
||||
.emit();
|
||||
|
||||
// Fallthrough. Emit a generic error message and return default method.
|
||||
let msg = "expected a valid HTTP method identifier";
|
||||
ecx.struct_span_err(meta_item.span, msg).help(valid_methods).emit();
|
||||
dummy_spanned(Method::Get)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,23 +1,6 @@
|
|||
extern crate compiletest_rs as compiletest;
|
||||
|
||||
use std::path::PathBuf;
|
||||
use compiletest::common::Mode;
|
||||
|
||||
fn run_mode(mode: Mode) {
|
||||
let mut config = compiletest::Config::default();
|
||||
config.mode = mode;
|
||||
config.src_base = PathBuf::from(format!("tests/{}", mode));
|
||||
|
||||
let flags = [
|
||||
"-L crate=../target/debug/",
|
||||
"-L dependency=../target/debug/deps/",
|
||||
].join(" ");
|
||||
|
||||
config.target_rustcflags = Some(flags);
|
||||
compiletest::run_tests(&config);
|
||||
}
|
||||
mod compiletest;
|
||||
|
||||
#[test]
|
||||
fn compile_test() {
|
||||
run_mode(Mode::CompileFail);
|
||||
fn compilefail() {
|
||||
compiletest::run(compiletest::Mode::CompileFail);
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
#![feature(plugin, decl_macro)]
|
||||
#![plugin(rocket_codegen)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
use rocket::Data;
|
||||
|
||||
#[get("/", data = "<something>")]
|
||||
//~^ ERROR payload supporting methods
|
||||
fn get(something: Data) -> &'static str { "hi" }
|
||||
|
||||
fn main() { }
|
|
@ -1,13 +0,0 @@
|
|||
#![feature(plugin, decl_macro)]
|
||||
#![plugin(rocket_codegen)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
#[route(FIX, "/hello")] //~ ERROR is not a valid HTTP method
|
||||
//~^ ERROR valid HTTP method
|
||||
fn get() -> &'static str { "hi" }
|
||||
|
||||
fn main() {
|
||||
let _ = routes![get];
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#![feature(plugin, decl_macro)]
|
||||
#![plugin(rocket_codegen)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
#[route(CONNECT, "/hello")] //~ ERROR valid HTTP method
|
||||
fn get() -> &'static str { "hi" }
|
||||
|
||||
fn main() {
|
||||
let _ = routes![get];
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#![feature(plugin, decl_macro, custom_derive)]
|
||||
#![plugin(rocket_codegen)]
|
||||
#![allow(dead_code, unused_variables)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
use std::fmt;
|
||||
|
||||
use rocket::http::Cookies;
|
||||
|
||||
#[post("/<id>")]
|
||||
fn simple(id: i32) -> &'static str { "" }
|
||||
|
||||
#[post("/<id>")]
|
||||
fn guard_1(cookies: Cookies, id: i32) -> &'static str { "" }
|
||||
|
||||
fn main() {
|
||||
uri!(simple); //~ ERROR expects 1 parameter but 0 were supplied
|
||||
uri!(simple: 1, 23); //~ ERROR expects 1 parameter but 2 were supplied
|
||||
uri!(simple: "Hello", 23, ); //~ ERROR expects 1 parameter but 2 were supplied
|
||||
uri!(guard_1: "hi", 100); //~ ERROR expects 1 parameter but 2 were supplied
|
||||
|
||||
uri!(simple: id = 100, name = "hi"); //~ ERROR invalid parameters
|
||||
uri!(simple: id = 100, id = 100); //~ ERROR invalid parameters
|
||||
uri!(simple: name = 100, id = 100); //~ ERROR invalid parameters
|
||||
uri!(simple: id = 100, id = 100, ); //~ ERROR invalid parameters
|
||||
uri!(simple: name = "hi"); //~ ERROR invalid parameters
|
||||
uri!(guard_1: cookies = "hi", id = 100); //~ ERROR invalid parameters
|
||||
uri!(guard_1: id = 100, cookies = "hi"); //~ ERROR invalid parameters
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
#![feature(plugin, decl_macro, custom_derive)]
|
||||
#![plugin(rocket_codegen)]
|
||||
#![allow(dead_code, unused_variables)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
#[post("/<id>/<name>")]
|
||||
fn simple(id: i32, name: String) -> &'static str { "" }
|
||||
|
||||
fn main() {
|
||||
uri!(simple: id = 100, "Hello"); //~ ERROR cannot be mixed
|
||||
uri!(simple: "Hello", id = 100); //~ ERROR cannot be mixed
|
||||
uri!(simple,); //~ ERROR expected one of `::`, `:`, or `<eof>`
|
||||
uri!(simple:); //~ ERROR expected argument list
|
||||
uri!("/mount"); //~ ERROR expected `,`, found `<eof>`
|
||||
uri!("/mount",); //~ ERROR expected identifier
|
||||
uri!("mount", simple); //~ ERROR invalid mount point
|
||||
uri!("/mount/<id>", simple); //~ ERROR invalid mount point
|
||||
uri!(); //~ ERROR cannot be empty
|
||||
uri!(simple: id = ); //~ ERROR expected argument list
|
||||
//~^ ERROR expected expression
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
extern crate compiletest_rs;
|
||||
|
||||
use std::path::PathBuf;
|
||||
|
||||
pub use self::compiletest_rs::common::Mode;
|
||||
pub use self::compiletest_rs::{Config, run_tests};
|
||||
|
||||
pub fn run(mode: Mode) {
|
||||
let mut config = Config::default();
|
||||
config.mode = mode;
|
||||
config.src_base = PathBuf::from(format!("tests/{}", mode));
|
||||
|
||||
let flags = [
|
||||
"-L crate=../target/debug/",
|
||||
"-L dependency=../target/debug/deps/",
|
||||
].join(" ");
|
||||
|
||||
config.target_rustcflags = Some(flags);
|
||||
run_tests(&config);
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
mod compiletest;
|
||||
|
||||
#[test]
|
||||
fn ui() {
|
||||
compiletest::run(compiletest::Mode::Ui);
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
#![feature(plugin, decl_macro)]
|
||||
#![plugin(rocket_codegen)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
#[get("/", data = "<something>")]
|
||||
fn get(something: rocket::Data) -> &'static str { "hi" }
|
|
@ -0,0 +1,10 @@
|
|||
error: `data` route parameters can only be used with payload supporting methods
|
||||
--> $DIR/data-without-post.rs:6:12
|
||||
|
|
||||
6 | #[get("/", data = "<something>")]
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: 'GET' does not support payloads
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
@ -1,31 +1,29 @@
|
|||
#![feature(plugin, decl_macro)]
|
||||
#![plugin(rocket_codegen)]
|
||||
|
||||
#[get("/><")] //~ ERROR malformed
|
||||
#[get("/><")]
|
||||
fn get() -> &'static str { "hi" }
|
||||
|
||||
#[get("/<id><")] //~ ERROR malformed
|
||||
#[get("/<id><")]
|
||||
fn get1(id: usize) -> &'static str { "hi" }
|
||||
|
||||
#[get("/<<<<id><")] //~ ERROR malformed
|
||||
#[get("/<<<<id><")]
|
||||
fn get2(id: usize) -> &'static str { "hi" }
|
||||
|
||||
#[get("/<!>")] //~ ERROR identifiers
|
||||
#[get("/<!>")]
|
||||
fn get3() -> &'static str { "hi" }
|
||||
|
||||
#[get("/<_>")] //~ ERROR named
|
||||
#[get("/<_>")]
|
||||
fn get4() -> &'static str { "hi" }
|
||||
|
||||
#[get("/<1>")] //~ ERROR identifiers
|
||||
#[get("/<1>")]
|
||||
fn get5() -> &'static str { "hi" }
|
||||
|
||||
#[get("/<>name><")] //~ ERROR malformed
|
||||
#[get("/<>name><")]
|
||||
fn get6() -> &'static str { "hi" }
|
||||
|
||||
#[get("/<name>:<id>")] //~ ERROR identifiers
|
||||
#[get("/<name>:<id>")]
|
||||
fn get7() -> &'static str { "hi" }
|
||||
|
||||
#[get("/<>")] //~ ERROR empty
|
||||
#[get("/<>")]
|
||||
fn get8() -> &'static str { "hi" }
|
||||
|
||||
fn main() { }
|
|
@ -0,0 +1,72 @@
|
|||
error: malformed parameter
|
||||
--> $DIR/malformed-param-list.rs:4:9
|
||||
|
|
||||
4 | #[get("/><")]
|
||||
| ^^
|
||||
|
|
||||
= help: parameters must be of the form '<param>'
|
||||
|
||||
error: malformed parameter
|
||||
--> $DIR/malformed-param-list.rs:7:9
|
||||
|
|
||||
7 | #[get("/<id><")]
|
||||
| ^^^^^
|
||||
|
|
||||
= help: parameters must be of the form '<param>'
|
||||
|
||||
error: malformed parameter
|
||||
--> $DIR/malformed-param-list.rs:10:9
|
||||
|
|
||||
10 | #[get("/<<<<id><")]
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= help: parameters must be of the form '<param>'
|
||||
|
||||
error: parameter names must be valid identifiers
|
||||
--> $DIR/malformed-param-list.rs:13:9
|
||||
|
|
||||
13 | #[get("/<!>")]
|
||||
| ^^^
|
||||
|
|
||||
= note: "!" is not a valid identifier
|
||||
|
||||
error: parameters must be named
|
||||
--> $DIR/malformed-param-list.rs:16:9
|
||||
|
|
||||
16 | #[get("/<_>")]
|
||||
| ^^^
|
||||
|
|
||||
= help: use a name such as `_guard` or `_param`
|
||||
|
||||
error: parameter names must be valid identifiers
|
||||
--> $DIR/malformed-param-list.rs:19:9
|
||||
|
|
||||
19 | #[get("/<1>")]
|
||||
| ^^^
|
||||
|
|
||||
= note: "1" is not a valid identifier
|
||||
|
||||
error: malformed parameter
|
||||
--> $DIR/malformed-param-list.rs:22:9
|
||||
|
|
||||
22 | #[get("/<>name><")]
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= help: parameters must be of the form '<param>'
|
||||
|
||||
error: parameter names must be valid identifiers
|
||||
--> $DIR/malformed-param-list.rs:25:9
|
||||
|
|
||||
25 | #[get("/<name>:<id>")]
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: "name>:<id" is not a valid identifier
|
||||
|
||||
error: parameters cannot be empty
|
||||
--> $DIR/malformed-param-list.rs:28:9
|
||||
|
|
||||
28 | #[get("/<>")]
|
||||
| ^^
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#![feature(plugin, decl_macro)]
|
||||
#![plugin(rocket_codegen)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
#[route(FIX, "/hello")]
|
||||
fn get1() -> &'static str { "hi" }
|
||||
|
||||
#[route("hi", "/hello")]
|
||||
fn get2() -> &'static str { "hi" }
|
||||
|
||||
#[route("GET", "/hello")]
|
||||
fn get3() -> &'static str { "hi" }
|
||||
|
||||
#[route(120, "/hello")]
|
||||
fn get4() -> &'static str { "hi" }
|
||||
|
||||
#[route(CONNECT, "/hello")]
|
||||
fn get5() -> &'static str { "hi" }
|
|
@ -0,0 +1,42 @@
|
|||
error: 'FIX' is not a valid method
|
||||
--> $DIR/route-bad-method.rs:6:9
|
||||
|
|
||||
6 | #[route(FIX, "/hello")]
|
||||
| ^^^
|
||||
|
|
||||
= help: valid methods are: `GET`, `PUT`, `POST`, `DELETE`, `PATCH`
|
||||
|
||||
error: expected a valid HTTP method identifier
|
||||
--> $DIR/route-bad-method.rs:9:9
|
||||
|
|
||||
9 | #[route("hi", "/hello")]
|
||||
| ^^^^
|
||||
|
|
||||
= help: valid methods are: `GET`, `PUT`, `POST`, `DELETE`, `PATCH`
|
||||
|
||||
error: expected a valid HTTP method identifier
|
||||
--> $DIR/route-bad-method.rs:12:9
|
||||
|
|
||||
12 | #[route("GET", "/hello")]
|
||||
| ^^^^^
|
||||
|
|
||||
= help: valid methods are: `GET`, `PUT`, `POST`, `DELETE`, `PATCH`
|
||||
|
||||
error: expected a valid HTTP method identifier
|
||||
--> $DIR/route-bad-method.rs:15:9
|
||||
|
|
||||
15 | #[route(120, "/hello")]
|
||||
| ^^^
|
||||
|
|
||||
= help: valid methods are: `GET`, `PUT`, `POST`, `DELETE`, `PATCH`
|
||||
|
||||
error: 'CONNECT' is not a valid method
|
||||
--> $DIR/route-bad-method.rs:18:9
|
||||
|
|
||||
18 | #[route(CONNECT, "/hello")]
|
||||
| ^^^^^^^
|
||||
|
|
||||
= help: valid methods are: `GET`, `PUT`, `POST`, `DELETE`, `PATCH`
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
|
@ -25,11 +25,7 @@ fn not_uri_display_but_unused(id: i32, name: S) -> &'static str { "" }
|
|||
|
||||
fn main() {
|
||||
uri!(simple: id = "hi");
|
||||
//~^ ERROR trait bound `i32: rocket::http::uri::FromUriParam<&str>` is not satisfied
|
||||
uri!(simple: "hello");
|
||||
//~^ ERROR trait bound `i32: rocket::http::uri::FromUriParam<&str>` is not satisfied
|
||||
uri!(simple: id = 239239i64);
|
||||
//~^ ERROR trait bound `i32: rocket::http::uri::FromUriParam<i64>` is not satisfied
|
||||
uri!(not_uri_display: 10, S);
|
||||
//~^ ERROR trait bound `S: rocket::http::uri::FromUriParam<_>` is not satisfied
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
error[E0277]: the trait bound `i32: rocket::http::uri::FromUriParam<&str>` is not satisfied
|
||||
--> $DIR/typed-uri-bad-type.rs:27:23
|
||||
|
|
||||
27 | uri!(simple: id = "hi");
|
||||
| ^^^^ the trait `rocket::http::uri::FromUriParam<&str>` is not implemented for `i32`
|
||||
|
|
||||
= note: required by `rocket::http::uri::FromUriParam::from_uri_param`
|
||||
|
||||
error[E0277]: the trait bound `i32: rocket::http::uri::FromUriParam<&str>` is not satisfied
|
||||
--> $DIR/typed-uri-bad-type.rs:28:18
|
||||
|
|
||||
28 | uri!(simple: "hello");
|
||||
| ^^^^^^^ the trait `rocket::http::uri::FromUriParam<&str>` is not implemented for `i32`
|
||||
|
|
||||
= note: required by `rocket::http::uri::FromUriParam::from_uri_param`
|
||||
|
||||
error[E0277]: the trait bound `i32: rocket::http::uri::FromUriParam<i64>` is not satisfied
|
||||
--> $DIR/typed-uri-bad-type.rs:29:23
|
||||
|
|
||||
29 | uri!(simple: id = 239239i64);
|
||||
| ^^^^^^^^^ the trait `rocket::http::uri::FromUriParam<i64>` is not implemented for `i32`
|
||||
|
|
||||
= note: required by `rocket::http::uri::FromUriParam::from_uri_param`
|
||||
|
||||
error[E0277]: the trait bound `S: rocket::http::uri::FromUriParam<_>` is not satisfied
|
||||
--> $DIR/typed-uri-bad-type.rs:30:31
|
||||
|
|
||||
30 | uri!(not_uri_display: 10, S);
|
||||
| ^ the trait `rocket::http::uri::FromUriParam<_>` is not implemented for `S`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
#![feature(plugin, decl_macro, custom_derive)]
|
||||
#![plugin(rocket_codegen)]
|
||||
#![allow(dead_code, unused_variables)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
use std::fmt;
|
||||
|
||||
use rocket::http::Cookies;
|
||||
|
||||
#[post("/<id>")]
|
||||
fn simple(id: i32) -> &'static str { "" }
|
||||
|
||||
#[post("/<id>")]
|
||||
fn guard_1(cookies: Cookies, id: i32) -> &'static str { "" }
|
||||
|
||||
fn main() {
|
||||
uri!(simple);
|
||||
uri!(simple: 1, 23);
|
||||
uri!(simple: "Hello", 23, );
|
||||
uri!(guard_1: "hi", 100);
|
||||
|
||||
uri!(simple: id = 100, name = "hi");
|
||||
uri!(simple: id = 100, id = 100);
|
||||
uri!(simple: name = 100, id = 100);
|
||||
uri!(simple: id = 100, id = 100, );
|
||||
uri!(simple: name = "hi");
|
||||
uri!(guard_1: cookies = "hi", id = 100);
|
||||
uri!(guard_1: id = 100, cookies = "hi");
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
error: `simple` route uri expects 1 parameter but 0 were supplied
|
||||
--> $DIR/typed-uris-bad-params.rs:18:10
|
||||
|
|
||||
18 | uri!(simple);
|
||||
| ^^^^^^
|
||||
|
|
||||
= note: expected parameter: id: i32
|
||||
|
||||
error: `simple` route uri expects 1 parameter but 2 were supplied
|
||||
--> $DIR/typed-uris-bad-params.rs:19:18
|
||||
|
|
||||
19 | uri!(simple: 1, 23);
|
||||
| ^^^^^
|
||||
|
|
||||
= note: expected parameter: id: i32
|
||||
|
||||
error: `simple` route uri expects 1 parameter but 2 were supplied
|
||||
--> $DIR/typed-uris-bad-params.rs:20:18
|
||||
|
|
||||
20 | uri!(simple: "Hello", 23, );
|
||||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= note: expected parameter: id: i32
|
||||
|
||||
error: `guard_1` route uri expects 1 parameter but 2 were supplied
|
||||
--> $DIR/typed-uris-bad-params.rs:21:19
|
||||
|
|
||||
21 | uri!(guard_1: "hi", 100);
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= note: expected parameter: id: i32
|
||||
|
||||
error: invalid parameters for `simple` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:23:18
|
||||
|
|
||||
23 | uri!(simple: id = 100, name = "hi");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: unknown parameter: `name`
|
||||
--> $DIR/typed-uris-bad-params.rs:23:28
|
||||
|
|
||||
23 | uri!(simple: id = 100, name = "hi");
|
||||
| ^^^^
|
||||
|
||||
error: invalid parameters for `simple` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:24:18
|
||||
|
|
||||
24 | uri!(simple: id = 100, id = 100);
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: duplicate parameter: `id`
|
||||
--> $DIR/typed-uris-bad-params.rs:24:28
|
||||
|
|
||||
24 | uri!(simple: id = 100, id = 100);
|
||||
| ^^
|
||||
|
||||
error: invalid parameters for `simple` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:25:18
|
||||
|
|
||||
25 | uri!(simple: name = 100, id = 100);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: unknown parameter: `name`
|
||||
--> $DIR/typed-uris-bad-params.rs:25:18
|
||||
|
|
||||
25 | uri!(simple: name = 100, id = 100);
|
||||
| ^^^^
|
||||
|
||||
error: invalid parameters for `simple` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:26:18
|
||||
|
|
||||
26 | uri!(simple: id = 100, id = 100, );
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: duplicate parameter: `id`
|
||||
--> $DIR/typed-uris-bad-params.rs:26:28
|
||||
|
|
||||
26 | uri!(simple: id = 100, id = 100, );
|
||||
| ^^
|
||||
|
||||
error: invalid parameters for `simple` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:27:18
|
||||
|
|
||||
27 | uri!(simple: name = "hi");
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: unknown parameter: `name`
|
||||
--> $DIR/typed-uris-bad-params.rs:27:18
|
||||
|
|
||||
27 | uri!(simple: name = "hi");
|
||||
| ^^^^
|
||||
= help: missing parameter: `id`
|
||||
|
||||
error: invalid parameters for `guard_1` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:28:19
|
||||
|
|
||||
28 | uri!(guard_1: cookies = "hi", id = 100);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: unknown parameter: `cookies`
|
||||
--> $DIR/typed-uris-bad-params.rs:28:19
|
||||
|
|
||||
28 | uri!(guard_1: cookies = "hi", id = 100);
|
||||
| ^^^^^^^
|
||||
|
||||
error: invalid parameters for `guard_1` route uri
|
||||
--> $DIR/typed-uris-bad-params.rs:29:19
|
||||
|
|
||||
29 | uri!(guard_1: id = 100, cookies = "hi");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: uri parameters are: id: i32
|
||||
help: unknown parameter: `cookies`
|
||||
--> $DIR/typed-uris-bad-params.rs:29:29
|
||||
|
|
||||
29 | uri!(guard_1: id = 100, cookies = "hi");
|
||||
| ^^^^^^^
|
||||
|
||||
error: aborting due to 11 previous errors
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
#![feature(plugin, decl_macro, custom_derive)]
|
||||
#![plugin(rocket_codegen)]
|
||||
#![allow(dead_code, unused_variables)]
|
||||
|
||||
extern crate rocket;
|
||||
|
||||
#[post("/<id>/<name>")]
|
||||
fn simple(id: i32, name: String) -> &'static str { "" }
|
||||
|
||||
fn main() {
|
||||
uri!(simple: id = 100, "Hello");
|
||||
uri!(simple: "Hello", id = 100);
|
||||
uri!(simple,);
|
||||
uri!(simple:);
|
||||
uri!("/mount");
|
||||
uri!("/mount",);
|
||||
uri!("mount", simple);
|
||||
uri!("/mount/<id>", simple);
|
||||
uri!();
|
||||
uri!(simple: id = );
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
error: named and unnamed parameters cannot be mixed
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:11:18
|
||||
|
|
||||
11 | uri!(simple: id = 100, "Hello");
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: named and unnamed parameters cannot be mixed
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:12:18
|
||||
|
|
||||
12 | uri!(simple: "Hello", id = 100);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: expected one of `::`, `:`, or `<eof>`, found `,`
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:13:16
|
||||
|
|
||||
13 | uri!(simple,);
|
||||
| ^ expected one of `::`, `:`, or `<eof>` here
|
||||
|
||||
error: expected argument list after `:`
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:14:16
|
||||
|
|
||||
14 | uri!(simple:);
|
||||
| ^
|
||||
|
||||
error: expected `,`, found `<eof>`
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:15:10
|
||||
|
|
||||
15 | uri!("/mount");
|
||||
| ^^^^^^^^
|
||||
|
||||
error: expected identifier, found `<eof>`
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:16:18
|
||||
|
|
||||
16 | uri!("/mount",);
|
||||
| ^
|
||||
|
||||
error: invalid mount point
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:17:10
|
||||
|
|
||||
17 | uri!("mount", simple);
|
||||
| ^^^^^^^
|
||||
|
|
||||
= help: mount points must be static, absolute URIs: `/example`
|
||||
|
||||
error: invalid mount point
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:18:10
|
||||
|
|
||||
18 | uri!("/mount/<id>", simple);
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= help: mount points must be static, absolute URIs: `/example`
|
||||
|
||||
error: call to `uri!` cannot be empty
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:19:5
|
||||
|
|
||||
19 | uri!();
|
||||
| ^^^^^^^
|
||||
|
||||
error: expected expression, found `<eof>`
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:20:21
|
||||
|
|
||||
20 | uri!(simple: id = );
|
||||
| ^
|
||||
|
||||
error: expected argument list after `:`
|
||||
--> $DIR/typed-uris-invalid-syntax.rs:20:21
|
||||
|
|
||||
20 | uri!(simple: id = );
|
||||
| ^
|
||||
|
||||
error: aborting due to 11 previous errors
|
||||
|
Loading…
Reference in New Issue