Commit graph

7911 commits

Author SHA1 Message Date
Taylor Cramer
3f966dcd53 Stabilize futures_api 2019-04-23 16:13:53 -07:00
Taylor Cramer
1691e06db6 Future-proof the Futures API 2019-04-05 15:03:33 -07:00
Taiki Endo
07021e07ed Allow closure to unsafe fn coercion 2019-04-01 00:00:43 +09:00
scalexm
d6a2b7c470 Fix a bug in implied bounds 2019-03-20 20:09:26 +01:00
Matthias Einwag
9e6bc3c438 Apply review suggestions and fix tests 2019-02-03 13:46:53 -08:00
Oliver Scherer
4b4fc63eb7 Stabilize let bindings and destructuring in constants and const fn 2019-01-09 10:20:12 +01:00
Mika Lehtinen
794b81ea5e Rename and fix nolink-with-link-args test
There are three problems with the nolink-with-link-args test:

* The test fails when using MSVC. It's caused by the `linker-flavor=ld` flag which was added in #46291.
* In its comment, this test tests that "link_args are indeed passed when nolink is specified", but the `nolink` attribute has been removed [a long time ago](https://github.com/rust-lang/rust/pull/12826).
* Pattern has a small typo.

At first I was going to completely remove this test, but there is [a closed pull request for that](https://github.com/rust-lang/rust/pull/21090).

So:

* rename the file as suggested in the closed PR
* adjust the comment
* fix typo in the pattern
* add `ignore-msvc`.
2018-12-31 13:51:40 +02:00
bors
f8caa321c7 Auto merge of #56999 - petrochenkov:macrecov2, r=estebank
AST/HIR: Introduce `ExprKind::Err` for better error recovery in the front-end

This way we can avoid aborting compilation if expansion produces errors and generate `ExprKind::Err`s instead.
2018-12-27 22:27:27 +00:00
scalexm
81d6f9cc81 Add tests 2018-12-27 19:21:16 +01:00
Vadim Petrochenkov
37af04ff8d Address review comments and CI failures 2018-12-27 15:51:37 +03:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Taylor Cramer
610bcaf6f3 Stabilize Pin 2018-12-21 20:42:50 -08:00
bors
cb84844e83 Auto merge of #56160 - oli-obk:const_fn_let, r=nikomatsakis
Fix various aspects around `let` bindings inside const functions

* forbid `let` bindings in const contexts that use short circuiting operators
* harden analysis code against derefs of mutable references

Initially this PR was about stabilizing `let` bindings, but too many flaws were exposed that need some more testing on nightly
2018-12-18 14:21:07 +00:00
Pietro Albini
e92d920269
Rollup merge of #56677 - aelred:must-use-on-traits, r=estebank
#[must_use] on traits in stdlib

Based on #55506.

Adds `#[must_use]` attribute to traits in the stdlib:
- `Iterator`
- `Future`
- `FnOnce`
- `Fn`
- `FnMut`

There may be other traits that should have the attribute, but I couldn't find/think of any.
2018-12-15 14:47:33 +01:00
bors
0d4f91905b Auto merge of #56351 - davidtwco:issue-55396-stabilize-linker-flavor, r=nagisa
Stabilize `linker-flavor` flag.

Part of #55396.

This commit moves the linker-flavor flag from a debugging option to a
codegen option, thus stabilizing it. There are no feature flags
associated with this flag.

r? @nagisa
2018-12-14 00:28:08 +00:00
David Wood
9536d04a2d
Stabilize linker-flavor flag.
This commit moves the linker-flavor flag from a debugging option to a
codegen option, thus stabilizing it. There are no feature flags
associated with this flag.
2018-12-13 09:41:46 +01:00
Felix Chapman
3246f495d0 Add trailing newline 2018-12-10 15:05:54 +00:00
Felix Chapman
a336228760 Add test to check library traits have #[must_use] attribute 2018-12-10 14:45:18 +00:00
Vadim Petrochenkov
4c9c70af38 Move former compile-fail-fulldeps tests to ui 2018-12-09 19:56:30 +03:00
Vadim Petrochenkov
8ab115c21d Unsupport #[derive(Trait)] sugar for #[derive_Trait] legacy plugin attributes 2018-12-07 03:30:01 +03:00
Oliver Scherer
ac47bd725f Fix a compile-fail test 2018-11-30 09:44:15 +01:00
Oliver Scherer
df2123cff2 Update compile-fail test 2018-11-30 09:43:41 +01:00
Eduard-Mihai Burtescu
3369929ddb tests: use force-host and no-prefer-dynamic in all proc_macro tests. 2018-11-30 06:15:20 +02:00
Eduard-Mihai Burtescu
fcca22cb40 tests: move all proc_macro tests from -fulldeps. 2018-11-30 06:15:20 +02:00
Esteban Küber
a5d35631fe Reword and fix test 2018-11-22 14:14:27 -08:00
Ralf Jung
0c0478d57a adjust remaining tests 2018-11-16 22:04:14 +01:00
bors
99e3fca27d Auto merge of #54906 - qnighy:fix-issue-50452, r=nikomatsakis
Reattach all grandchildren when constructing specialization graph.

Specialization graphs are constructed by incrementally adding impls in the order of declaration. If the impl being added has its specializations in the graph already, they should be reattached under the impl. However, the current implementation only reattaches the one found first. Therefore, in the following specialization graph,

```
  Tr1
   |
   I3
  /  \
 I1  I2
```

If `I1`, `I2`, and `I3` are declared in this order, the compiler mistakenly constructs the following graph:

```
  Tr1
  /  \
 I3  I2
  |
 I1
```

This patch fixes the reattach procedure to include all specializing grandchildren-to-be.

Fixes #50452.
2018-11-15 09:51:53 +00:00
bors
cae6efc37d Auto merge of #54183 - qnighy:by-value-object-safety, r=oli-obk
Implement by-value object safety

This PR implements **by-value object safety**, which is part of unsized rvalues #48055. That means, with `#![feature(unsized_locals)]`, you can call a method `fn foo(self, ...)` on trait objects. One aim of this is to enable `Box<FnOnce>`  in the near future.

The difficulty here is this: when constructing a vtable for a trait `Foo`, we can't just put the function `<T as Foo>::foo` into the table. If `T` is no larger than `usize`, `self` is usually passed directly. However, as the caller of the vtable doesn't know the concrete `Self` type, we want a variant of `<T as Foo>::foo` where `self` is always passed by reference.

Therefore, when the compiler encounters such a method to be generated as a vtable entry, it produces a newly introduced instance called `InstanceDef::VtableShim(def_id)` (that wraps the original instance). the shim just derefs the receiver and calls the original method. We give different symbol names for the shims by appending `::{{vtable-shim}}` to the symbol path (and also adding vtable-shimness as an ingredient to the symbol hash).

r? @eddyb
2018-10-27 19:29:35 +00:00
Oliver Schneider
1c5ff292fc Rebase fallout 2018-10-25 17:20:39 +02:00
Oliver Schneider
7fdf06cdde Report const eval error inside the query 2018-10-25 16:46:19 +02:00
Masaki Hara
b3dce87a86 Move compile-fail/unsized-locals under ui as per #44844. 2018-10-24 22:55:40 +09:00
Masaki Hara
4ce35fdd34 Add tests for unsized-locals. 2018-10-24 21:59:07 +09:00
Masaki Hara
3a8e0afdbc Reattach all grandchildren when constructing specialization graph.
This commit fixes the issue #50452.
2018-10-08 21:39:46 +09:00
Oliver Schneider
ec74d3533a Stabilize min_const_fn 2018-10-05 10:36:14 +02:00
Oliver Schneider
c793391e6d Move platform dependent output ui tests to compile-fail 2018-10-03 11:46:05 +02:00
Jorge Aparicio
358fc5b621 stabilize #[panic_handler] 2018-09-07 13:27:30 +02:00
Oliver Schneider
d125e904b5 Restrict most uses of const_fn to min_const_fn 2018-08-31 08:40:00 +02:00
Jorge Aparicio
a774c81f98 add #[panic_handler]; deprecate #[panic_implementation] 2018-08-23 20:58:55 +02:00
Masaki Hara
e2b95cb70e Lift some Sized checks. 2018-08-19 08:07:33 +09:00
David Wood
7b026568f7
Moved problematic tests on x86_64-gnu-nopt back to compile-fail. 2018-08-14 11:12:13 +02:00
David Wood
d775e6132c
Moved problematic tests on x86_64-pc-windows-gnu back to compile-fail. 2018-08-14 11:12:12 +02:00
David Wood
67ec37b608
Moved problematic tests on armhf-gnu back to compile-fail. 2018-08-14 11:12:12 +02:00
David Wood
4b2464592c
Moved problematic tests on wasm32-unknown back to compile-fail. 2018-08-14 11:12:12 +02:00
David Wood
f7f7c1eef3
Moved problematic tests on dist-x86_64-musl back to compile-fail. 2018-08-14 11:12:12 +02:00
David Wood
b8b7a3c30e
Moved problematic tests on i586-unknown-linux-gnu back to compile-fail. 2018-08-14 11:12:12 +02:00
David Wood
768998a8de
Normalize tests for i686 Windows. 2018-08-14 11:12:11 +02:00
David Wood
0cfc17358a
Moved problematic tests on Windows back to compile-fail. 2018-08-14 11:12:11 +02:00
David Wood
a922642455
Moved tests back to compile-test if they don't work on ui. 2018-08-14 11:12:11 +02:00
David Wood
b16a30677f
Moved compile-fail tests to ui tests. 2018-08-14 10:38:00 +02:00
Eduard-Mihai Burtescu
f9b1176eef rustc_resolve: fix special-case for one-segment import paths. 2018-08-14 07:06:50 +03:00