about summary refs log tree commit diff
path: root/src/test/compile-fail/trait-bounds-impl-comparison-1.rs
AgeCommit message (Collapse)AuthorLines
2016-11-01move compile-fail tests to ui testsNiko Matsakis-80/+0
gets more comprehensive coverage in `ui`
2016-11-01update test error messagesNiko Matsakis-7/+7
We've got a new revised message for E0273; just drop back to the error code, since the ui tests check for the full appearance now.
2016-04-21port compiletest to use JSON outputNiko Matsakis-1/+1
This uncovered a lot of bugs in compiletest and also some shortcomings of our existing JSON output. We had to add information to the JSON output, such as suggested text and macro backtraces. We also had to fix various bugs in the existing tests. Joint work with jntrnr.
2016-04-05improve the printing of substs and trait-refsAriel Ben-Yehuda-6/+6
2016-03-30Fix fallout in testsJeffrey Seyfried-2/+2
2015-04-02Fallout in testsNiko Matsakis-2/+1
2015-02-18Fallout: tests. As tests frequently elide things, lots of changesNiko Matsakis-5/+9
here. Some of this may have been poorly rebased, though I tried to be careful and preserve the spirit of the test.
2015-01-14Refactor compare_impl_method to use all boundsJared Roesch-8/+7
Refactor compare_impl_method into its own file. Modify the code to stop comparing individual parameter bounds. Instead we now use the predicates list attached to the trait and implementation generics. This ensures consistency even when bounds are declared in different places (i.e on a parameter vs. in a where clause).
2015-01-06test fallout from isize/usizeCorey Richardson-5/+5
2014-07-01librustc: Properly compare implementation method type parameter boundsPatrick Walton-0/+78
with the corresponding trait parameter bounds. This is a version of the patch in PR #12611 by Florian Hahn, modified to address Niko's feedback. It does not address the issue of duplicate type parameter bounds, nor does it address the issue of implementation-defined methods that contain *fewer* bounds than the trait, because Niko's review indicates that this should not be necessary (and indeed I believe it is not). A test has been added to ensure that this works. This will break code like: trait Foo { fn bar<T:Baz>(); } impl Foo for Boo { fn bar<T:Baz + Quux>() { ... } // ^~~~ ERROR } This will be rejected because the implementation requires *more* bounds than the trait. It can be fixed by either adding the missing bound to the trait: trait Foo { fn bar<T:Baz + Quux>(); // ^~~~ } impl Foo for Boo { fn bar<T:Baz + Quux>() { ... } // OK } Or by removing the bound from the impl: trait Foo { fn bar<T:Baz>(); } impl Foo for Boo { fn bar<T:Baz>() { ... } // OK // ^ remove Quux } This patch imports the relevant tests from #2687, as well as the test case in #5886, which is fixed as well by this patch. Closes #2687. Closes #5886. [breaking-change]