Commit graph

16377 commits

Author SHA1 Message Date
Mark Simulacrum
3bed3bd146 Rollup merge of #42734 - MaloJaffre:tests, r=Mark-Simulacrum
Add tests for various issues

Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.
2017-06-18 10:34:14 -06:00
Mark Simulacrum
db9c12c2ef Rollup merge of #42731 - MaloJaffre:issue-24889, r=Mark-Simulacrum
Add test for #24889

Fixes #24889.
r? @Mark-Simulacrum (Thanks for the instructions).
2017-06-18 10:34:13 -06:00
Mark Simulacrum
27a3f7340a Rollup merge of #42730 - VBChunguk:boxed-wild-pattern, r=eddyb
Use T as the subpattern type of Box<T>

The subpattern type of boxes being nil does not make sense because of box patterns. They should have their inner type as the subpattern type.

Fixes #42679, which describes ICE caused by the bug.
2017-06-18 10:34:12 -06:00
Malo Jaffré
5fe89e8eb1 Add tests for various issues
Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.
2017-06-18 18:18:08 +02:00
Florian Hahn
8723f28772 rustc: Check if def_path_hash_to_def_id is populated before accessing it.
Without this patch, there is an ICE when running rustc with
RUST_LOG=debug. This patch updates extract_def_id to check if the map
has been populated before accessing it. This fixes the problem, but
maybe we do not need to compute the incremental hashes maps in the first
place when we are not in incremental mode?
2017-06-18 17:01:25 +01:00
Ariel Ben-Yehuda
09219d6a49 collector: apply param substs to closures cast to fn items
Fixes #42718.
2017-06-18 18:57:39 +03:00
Malo Jaffré
a5403d09f5 Add test for #24889
Fixes #24889.
r? @Mark-Simulacrum.
2017-06-18 14:30:33 +02:00
bors
28cc0c5a7b Auto merge of #42593 - ibabushkin:on-demand-external-source, r=eddyb
Implement lazy loading of external crates' sources. Fixes #38875

Fixes #38875. This is a follow-up to #42507. When a (now correctly translated) span from an external crate is referenced in a error, warning or info message, we still don't have the source code being referenced.
Since stuffing the source in the serialized metadata of an rlib is extremely wasteful, the following scheme has been implemented:

* File maps now contain a source hash that gets serialized as well.
* When a span is rendered in a message, the source hash in the corresponding file map(s) is used to try and load the source from the corresponding file on disk. If the file is not found or the hashes don't match, the failed attempt is recorded (and not retried).
* The machinery fetching source lines from file maps is augmented to use the lazily loaded external source as a secondary fallback for file maps belonging to external crates.

This required a small change to the expected stderr of one UI test (it now renders a span, where previously was none).

Further work can be done based on this - some of the machinery previously used to hide external spans is possibly obsolete and the hashing code can be reused in different places as well.

r? @eddyb
2017-06-18 10:41:05 +00:00
Wonwoo Choi
abebe8afde Use T as the subpattern type of Box<T>
The subpattern type of boxes being nil does not make sense because of
box patterns. They should have their inner type as the subpattern type.
2017-06-18 16:07:26 +09:00
bors
78d8416caf Auto merge of #42649 - estebank:if-cond, r=nikomatsakis
Report error for assignment in `if` condition

For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```

Fix #40926.
2017-06-17 16:54:07 +00:00
Niko Matsakis
9fec4093df register the obligations from wf::implied_bounds
Fixes #42552.
Fixes #42545.
2017-06-17 05:40:39 -04:00
bors
08d920cd4d Auto merge of #42650 - nrc:save-slim, r=eddyb
save-analysis: remove a lot of stuff

This commits us to the JSON format and the more general def/ref style of output, rather than also supporting different data formats for different data structures. This does not affect the RLS at all, but will break any clients of the CSV form - AFAIK there are none (beyond a few of my own toy projects) - DXR stopped working long ago.

r? @eddyb
2017-06-17 04:36:02 +00:00
John Kåre Alsaker
bd7cc779b6 Make the next variable mutable to allow for ref mut in for patterns. 2017-06-17 01:51:55 +02:00
Stepan Koltsov
f11e40a811 deriv(Hash) for single-variant enum should not hash discriminant
Fixes #39137
2017-06-16 22:59:20 +03:00
Esteban Küber
da78b4d88e Review comments
- exhaustive match
- rename method to `check_expr_meets_expectation_or_error`
- formatting
- add `delay_span_bug`
- add test
2017-06-16 12:15:06 -07:00
bors
ebbc9ea914 Auto merge of #42410 - nagisa:llvmup, r=sanxiyn
Upgrade LLVM

Includes https://github.com/rust-lang/llvm/pull/80
2017-06-16 12:18:45 +00:00
bors
787d9da125 Auto merge of #41840 - arielb1:deduplicate-selection-errors, r=nikomatsakis
Suppress trait errors that are implied by other errors

this is currently a hack and should be cleaned up somewhat. Posting this to get some feedback.

r? @nikomatsakis
cc @estebank
2017-06-16 10:07:58 +00:00
bors
c3627e25ee Auto merge of #42631 - malbarbo:wasm32, r=alexcrichton
Add a travis builder for wasm32-unknown-emscripten

This commits add an entry to travis matrix that will execute wasm32-unknown-emscripten tests suites.

- Emscripten for asmjs was updated to sdk-1.37.13-64bit
- The tests are run with node 8.0.0 (it can execute wasm)
- A wrapper script is used to run each test from the directory where it is (workaround for https://github.com/kripken/emscripten/issues/4542)
- Some tests are ignore, see #42629 and #42630
2017-06-16 07:54:59 +00:00
bors
4581e89a49 Auto merge of #42690 - frewsxcv:rollup, r=frewsxcv
Rollup of 5 pull requests

- Successful merges: #42616, #42651, #42654, #42656, #42685
- Failed merges:
2017-06-16 05:43:38 +00:00
Corey Farwell
999f3ad60d Rollup merge of #42656 - VBChunguk:struct-field-attributes, r=nikomatsakis
Remove struct_field_attributes feature gate

Part of #41681. ~This PR only removes the feature gate; this *does not* update any documentations.~ This PR removes the feature gate and the corresponding chapter of the Unstable Book.

I'm not very sure about the changes I made though... Just followed the stabilization guideline.

r? @nikomatsakis
2017-06-16 00:32:45 -04:00
Corey Farwell
f05afa09a8 Rollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus
Error codes new

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus
2017-06-16 00:32:44 -04:00
bors
44eeb2109b Auto merge of #42578 - estebank:recover-binop, r=nikomatsakis
Learn to parse `a as usize < b`

Parsing `a as usize > b` always works, but `a as usize < b` was a
parsing error because the parser would think the `<` started a generic
type argument for `usize`. The parser now attempts to parse as before,
and if a DiagnosticError is returned, try to parse again as a type with
no generic arguments. If this fails, return the original
`DiagnosticError`.

Fix #22644.
2017-06-16 03:31:09 +00:00
bors
a3114961a1 Auto merge of #42568 - GuillaumeGomez:E0608, r=QuietMisdreavus
E0608

Part of #42229.

cc @Susurrus
2017-06-16 00:40:05 +00:00
Niko Matsakis
09bc09201c remove trailing whitespace 2017-06-15 15:45:37 -04:00
Niko Matsakis
f11cf60944 Create for-loop-unconstrained-element-type-i32-fallback.rs 2017-06-15 12:31:45 -04:00
Niko Matsakis
e4baa26d2a document purpose of test 2017-06-15 12:28:07 -04:00
Niko Matsakis
d5fd8fef67 explain purpose of test 2017-06-15 12:27:15 -04:00
Simonas Kazlauskas
406eddf5e1 Add a no-system-llvm compilecheck header 2017-06-15 19:11:55 +03:00
Esteban Küber
ad260ffc88 Review comments
- generate error instead of warning
- remove `RewindPoint` and just keep a copy of `Parser` to rewind state.
- `dont_parse_generics: bool` -> `parse_generics: bool`
- remove `eat_lt`
- move error handling code to separate method
2017-06-15 08:45:24 -07:00
Alex Ozdemir
a82890e67b Clearer Error Message for Duplicate Definition
Clearer use of the error message and span labels to communicate
duplicaiton defitions/imports.

New error format:

```
error[E0428]: the name `Foo` is defined twice
 --> example.rs:2:1
  |
1 | trait Foo { }
  | ------------- previous definition of the trait `Foo` here
2 | struct Foo { }
  | ^^^^^^^^^^^^^^ `Foo` redefined here
  = note: `Foo` must be defined only once in the type namespace of this module

error: aborting due to previous error
```
2017-06-15 08:21:17 -07:00
bors
258ae6dd9b Auto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichton
Merge crate `collections` into `alloc`

This is a necessary step in order to merge #42565
2017-06-15 12:37:54 +00:00
Guillaume Gomez
f720e972cf Add E0618 2017-06-15 14:00:58 +02:00
Guillaume Gomez
ee600642db Add E0616 2017-06-15 10:30:26 +02:00
Guillaume Gomez
5bb58bf2e6 Add E0615 2017-06-15 10:29:47 +02:00
Guillaume Gomez
a80db25802 Add E0614 2017-06-15 10:29:20 +02:00
Guillaume Gomez
e8cbb53309 Add E0613 2017-06-15 10:14:29 +02:00
Guillaume Gomez
a42f8160ed Add E0612 2017-06-15 10:14:29 +02:00
Guillaume Gomez
302f99693f Add E0611 2017-06-15 10:13:55 +02:00
Esteban Küber
028b5f94e3 Report error for assignment in if condition
For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```
2017-06-14 22:09:32 -07:00
John Kåre Alsaker
a80840f751 Added more tests 2017-06-15 02:09:53 +02:00
Ariel Ben-Yehuda
7b9519a5d4 suppress trait errors that are implied by other errors
Instead of suppressing only trait errors that are "exact duplicates",
display only the "most high-level" error when there are multiple trait
errors with the same span that imply each-other.

e.g. when there are both `[closure]: Fn` and `[closure]: FnOnce`, omit
displaying the `[closure]: FnOnce` bound.
2017-06-14 23:33:47 +03:00
John Kåre Alsaker
8d65dd62b1 Fix test formatting 2017-06-14 19:26:42 +02:00
Wonwoo Choi
79f173ad21 Remove struct_field_attributes feature gate 2017-06-15 02:24:05 +09:00
John Kåre Alsaker
2d379b3393 Fix formatting and add a test for destruction order of unbound values 2017-06-14 13:36:30 +02:00
bors
554c685b0b Auto merge of #42523 - clarcharr:refactor_ops, r=brson
Refactor ops.rs

This refactors ops.rs into several different modules internally, as the file has gotten quite big. None of these modules are actually exported, but this should make maintaining it much easier. I've avoided the ambition of exporting the modules because they can more easily be rearranged after this commit goes through, even though it'd be cool to potentially export the modules in the future.

I've separated the creation of each file into a separate commit so that this is easier to read.

Redone version of #42269 with the movement of `RangeArgument` moved.
2017-06-14 11:17:31 +00:00
bors
dfa7e21e4e Auto merge of #42433 - marco-c:profiling, r=alexcrichton
Build instruction profiler runtime as part of compiler-rt

r? @alexcrichton

This is #38608 with some fixes.

Still missing:
- [x] testing with profiler enabled on some builders (on which ones? Should I add the option to some of the already existing configurations, or create a new configuration?);
- [x] enabling distribution (on which builders?);
- [x] documentation.
2017-06-14 08:46:14 +00:00
Murarth
eadda7665e Merge crate collections into alloc 2017-06-13 23:37:34 -07:00
Nick Cameron
9a471606c0 Remove CSV format of save-analysis data 2017-06-14 10:45:59 +12:00
Guillaume Gomez
a5dc963974 Add E0617 2017-06-13 23:10:43 +02:00
Marco A L Barbosa
405adb6d0c Ignore some failing test on wasm32-unknown-emscripten
See #42629 and #42630.
2017-06-13 10:46:54 -03:00