diff options
| author | bors <bors@rust-lang.org> | 2016-03-08 23:34:34 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-03-08 23:34:34 -0800 |
| commit | e1704f76efdb265dc852f6fbac0452cb2a862e02 (patch) | |
| tree | 6e0ecc835dd8c1d887e59dcc965f9f4f44e80c1b /src | |
| parent | d289e1a145436fb691f5dfe9d8caa738fb319800 (diff) | |
| parent | 4844f01babbd8846ef0ba1d92580cd65178e3d2e (diff) | |
| download | rust-e1704f76efdb265dc852f6fbac0452cb2a862e02.tar.gz rust-e1704f76efdb265dc852f6fbac0452cb2a862e02.zip | |
Auto merge of #32023 - matklad:diamonds-and-rust, r=nikomatsakis
tests: add test for empty <> Rust allows to specify an empty list of type and lifetime parameters, but there are no tests for it: ``` user@UNIT-326 [12:53:45] [~/projects/rust] [diamonds-and-rust] -> % grep "<>" -R src/test src/test/compile-fail/generic-type-params-name-repr.rs: // And don't print <> at all when there's just defaults. src/test/debuginfo/issue22656.rs:// when trying to handle a Vec<> or anything else that contains zero-sized ``` So let's add them! Besides it's such a wonderful opportunity to put a reference to Judas Priest band into the branch name ;)
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/run-pass/empty-type-parameter-list.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/run-pass/empty-type-parameter-list.rs b/src/test/run-pass/empty-type-parameter-list.rs new file mode 100644 index 00000000000..7af2844d564 --- /dev/null +++ b/src/test/run-pass/empty-type-parameter-list.rs @@ -0,0 +1,33 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Test that empty type parameter list (<>) is synonymous with +// no type parameters at all + +struct S<>; +trait T<> {} +enum E<> { V } +impl<> T<> for S<> {} +impl T for E {} +fn foo<>() {} +fn bar() {} + +fn main() { + let _ = S; + let _ = S::<>; + let _ = E::V; + let _ = E::<>::V; + foo(); + foo::<>(); + + // Test that we can supply <> to non generic things + bar::<>(); + let _: i32<>; +} |
