Taylor Cramer
bc4810d907
Fix impl Trait Lifetime Handling
...
After this change, impl Trait existentials are
desugared to a new `abstract type` definition
paired with a set of lifetimes to apply.
In-scope generics are included as parents of the
`abstract type` generics. Parent regions are
replaced with static, and parent regions
referenced in the `impl Trait` type are duplicated
at the end of the `abstract type`'s generics.
2017-11-17 10:01:54 -08:00
Christopher Vittal
779fc372c7
Move E0562 to librustc from librustc_typeck
...
With the check for impl trait moving from type checking to HIR lowering
the error needs to move too.
2017-11-15 15:46:01 -05:00
kennytm
0b02377614
Rollup merge of #45585 - frewsxcv:frewsxcv-diagnostic, r=kennytm
...
Remove 'future Rust version' code block in diagnostic text.
Fixes https://github.com/rust-lang/rust/issues/43780 .
2017-10-28 15:56:25 +08:00
Corey Farwell
b1681271e5
Remove 'future Rust version' code block in diagnostic text.
...
Fixes https://github.com/rust-lang/rust/issues/43780 .
2017-10-27 22:49:56 -04:00
steveklabnik
4c6942d262
Remove 'just' in diagnostics
...
This is better writing
2017-10-26 09:27:20 -04:00
gaurikholkar
4bbb58d429
remove error code description
2017-09-26 11:55:53 -04:00
bors
4b8bf391fd
Auto merge of #44735 - tirr-c:issue-42143, r=arielb1
...
Friendlier error message for closure argument type mismatch
Rebased #42270 .
Fixes #42143 .
---
`test.rs`:
```rust
fn main() {
foo(|_: i32, _: usize| ());
}
fn foo<F>(_: F) where F: Fn(&str, usize) {}
```
Before:
```
error[E0281]: type mismatch: `[closure@test.rs:2:9: 2:30]` implements the trait `std::ops::Fn<(i32, usize)>`, but the trait `for<'r> std::ops::Fn<(&'r str, usize)>` is required
--> test.rs:2:5
|
2 | foo(|_: i32, _: usize| ());
| ^^^ --------------------- implements `std::ops::Fn<(i32, usize)>`
| |
| expected &str, found i32
| requires `for<'r> std::ops::Fn<(&'r str, usize)>`
|
= note: required by `foo`
```
After (early):
```
error[E0631]: type mismatch in closure arguments
--> test.rs:2:5
|
2 | foo(|_: i32, _: usize| ());
| ^^^ --------------------- takes arguments of type `i32` and `usize`
| |
| expected arguments of type `&str` and `usize`
|
= note: required by `foo`
```
After (current):
```
error[E0631]: type mismatch in closure arguments
--> test.rs:2:5
|
2 | foo(|_: i32, _: usize| ());
| ^^^ --------------------- found signature of `fn(i32, usize) -> _`
| |
| expected signature of `for<'r> fn(&'r str, usize) -> _`
|
= note: required by `foo`
```
~~Compiler output has been changed, and a few tests are failing. Help me writing/fixing tests!~~
r? @nikomatsakis
2017-09-26 05:02:03 +00:00
Ariel Ben-Yehuda
c72a979979
move unsafety checking to MIR
...
No functional changes intended.
2017-09-24 12:46:00 +03:00
Wonwoo Choi
1bfbfb20a1
Print fn signature when there is closure argument type mismatch
...
Fixes #42143 .
E0281 is totally replaced by E0631. UI tests are updated accordingly.
2017-09-23 10:15:30 +09:00
Taylor Cramer
64314e3ae2
Implement underscore lifetimes
2017-09-20 23:45:05 -07:00
Niko Matsakis
88e4bf6827
fix "correct" case in diagnostic error message
2017-09-10 06:08:29 -04:00
gaurikholkar
cfc7cf3961
adding E0623 for LateBound regions
2017-09-09 11:12:27 +05:30
Ariel Ben-Yehuda
6866aea5af
implement improved on_unimplemented directives
2017-09-03 13:10:54 +03:00
Ariel Ben-Yehuda
243aa12d6e
refactor and centralize on_unimplemented parsing
2017-09-03 13:10:53 +03:00
Alex Crichton
c872f47276
Merge remote-tracking branch 'origin/master' into gen
2017-08-25 07:15:12 -07:00
Vadim Petrochenkov
000f87ab1e
Desugar parenthesized generic arguments in HIR
2017-08-19 02:14:53 +03:00
Alex Crichton
4b5f330c70
Merge remote-tracking branch 'origin/master' into gen
2017-08-17 13:23:20 -07:00
Anthony Defranceschi
d6cdefc4e0
added whitespace
2017-08-17 01:39:23 +02:00
Anthony Defranceschi
fe06b70b2a
E0106: field lifetimes
...
I've added an example for custom type lifetimes located in another `struct` fields.
2017-08-16 22:49:18 +02:00
Alex Crichton
22ebcaca16
Choose another error code
2017-08-14 19:38:32 -07:00
Alex Crichton
06ce77cb39
Merge remote-tracking branch 'origin/master' into gen
2017-07-28 13:07:15 -07:00
John Kåre Alsaker
0f8897cc35
Fix error code
2017-07-28 15:47:55 +02:00
John Kåre Alsaker
5da9a8aa19
Rename some variables in lowering.rs and add an error number for the error
2017-07-28 15:47:14 +02:00
gaurikholkar
4fb1808ab6
Adding E0623, to detect missing lifetimes when both regions are anonymous
2017-07-28 08:51:58 +05:30
bors
52a3309695
Auto merge of #43443 - bitshifter:issue-43317, r=nikomatsakis
...
Improve checking of conflicting packed and align representation hints on structs and unions.
Fixes #43317 and improves #33626 .
2017-07-27 19:48:13 +00:00
Cameron Hart
200c4d0410
Better detection of repr packed and align
...
Fixes issue #43317 .
2017-07-23 17:27:13 +10:00
Josh Stone
5c6ccdc37c
Correct the spelling of "homogeneous"
2017-07-21 18:08:40 -07:00
Niko Matsakis
24a5ceab52
tweak word ordering
2017-07-11 10:30:23 +02:00
Guillaume Gomez
ef26f1756c
Clean up some code
2017-07-11 10:30:23 +02:00
Vadim Petrochenkov
affb8ee831
Remove more anonymous trait method parameters
2017-07-08 01:56:27 +03:00
Niko Matsakis
95409016f8
remove fn main() { } from extended errors
2017-06-29 06:37:18 -07:00
gaurikholkar
aebc4e0074
Changing the error code to E0621
2017-06-29 06:37:18 -07:00
gaurikholkar
176225c4dd
Adding diagnostic code 0611 for lifetime errors with one named, one anonymous lifetime parameter
2017-06-29 06:37:18 -07:00
kennytm
4711982314
Removed as many "```ignore" as possible.
...
Replaced by adding extra imports, adding hidden code (`# ...`), modifying
examples to be runnable (sorry Homura), specifying non-Rust code, and
converting to should_panic, no_run, or compile_fail.
Remaining "```ignore"s received an explanation why they are being ignored.
2017-06-23 15:31:53 +08:00
Mark Simulacrum
effa869cab
Update transmute size lints.
...
Also moves a few transmute tests to UI tests to better test their
output.
2017-06-18 10:36:07 -06:00
Wonwoo Choi
3cb7825986
Update older URLs pointing to the first edition of the Book
...
`compiler-plugins.html` is moved into the Unstable Book.
Explanation is slightly modified to match the change.
2017-06-15 00:04:00 +09:00
Guillaume Gomez
7cc1ab4480
Add E0602
2017-06-02 20:09:35 +02:00
Guillaume Gomez
a333be7cfe
Add new error code
2017-05-30 19:19:34 +02:00
Michael Woerister
8da2fe8ed7
Remove interior mutability from TraitDef by turning fields into queries.
2017-05-15 15:28:28 +02:00
Esteban Küber
b52c8c2fcf
Reorder code, fix unittests
2017-04-24 16:44:07 -07:00
Esteban Küber
e8cf5f3662
Clean up closure type mismatch errors
2017-04-23 15:54:49 -07:00
Ariel Ben-Yehuda
d3476f4b76
cache ADT dtorck results
...
This avoids visiting the fields of all structs multiple times, improving
item-bodies checking time by 10% (!).
2017-04-23 23:09:21 +03:00
Cameron Hart
4358e35fda
Implementation of repr struct alignment RFC 1358.
...
The main changes around rustc::ty::Layout::struct and rustc_trans:adt:
* Added primitive_align field which stores alignment before repr align
* Always emit field padding when generating the LLVM struct fields
* Added methods for adjusting field indexes from the layout index to the
LLVM struct field index
The main user of this information is rustc_trans::adt::struct_llfields
which determines the LLVM fields to be used by LLVM, including padding
fields.
2017-04-21 07:32:32 +10:00
Cengiz Can
8b45a21bd1
comment out removed error codes
2017-04-18 21:43:22 +03:00
Cengiz Can
6383de15b1
fixes #40013
2017-04-18 21:43:22 +03:00
Eduard-Mihai Burtescu
8854164d0c
rustc_const_eval: move ConstEvalErr to the rustc crate.
2017-04-16 01:31:06 +03:00
Oliver Middleton
99a069eec9
Fix broken Markdown and bad links in the error index
...
This makes sure RFC links point to the RFC text not the pull request.
2017-03-27 15:21:04 +01:00
Eduard Burtescu
7650afc1ce
Make transmuting from fn item types to pointer-sized types a hard error.
2017-02-28 23:47:55 +02:00
Eduard-Mihai Burtescu
e7a48821c0
rustc_const_eval: always demand typeck_tables for evaluating constants.
2017-02-25 18:35:26 +02:00
Eduard-Mihai Burtescu
28f1cf4262
rustc_typeck: don't use Result for get_type_parameter_bounds and ensure_super_predicates.
2017-02-25 17:07:59 +02:00