Commit graph

1278 commits

Author SHA1 Message Date
Vadim Petrochenkov
7ba5fd168a Update UI tests 2018-02-26 20:24:42 +03:00
Vadim Petrochenkov
e650eef8b0 Implement opt-out from UI testing normalization 2018-02-26 20:24:41 +03:00
Vadim Petrochenkov
fa2d9fc4b9 Update UI tests 2018-02-26 20:24:02 +03:00
bors
bedbad6119 Auto merge of #48337 - GuillaumeGomez:rustc-explain, r=estebank
Rustc explain

Fixes #48041.

To make the review easier, I separated tests update to code update. Also, I used this script to generate new ui tests stderr:

```python
from os import listdir
from os.path import isdir, isfile, join

PATH = "src/test/ui"

def do_something(path):
    files = [join(path, f) for f in listdir(path)]

    for f in files:
        if isdir(f):
            do_something(f)
            continue
        if not isfile(f) or not f.endswith(".stderr"):
            continue
        x = open(f, "r")
        content = x.read().strip()
        if "error[E" not in content:
            continue
        errors = dict()
        for y in content.splitlines():
            if y.startswith("error[E"):
                errors[y[6:11]] = True
        errors = sorted(errors.keys())
        if len(errors) < 1:
            print("weird... {}".format(f))
            continue
        if len(errors) > 1:
            content += "\n\nYou've got a few errors: {}".format(", ".join(errors))
            content += "\nIf you want more information on an error, try using \"rustc --explain {}\"".format(errors[0])
        else:
            content += "\n\nIf you want more information on this error, try using \"rustc --explain {}\"".format(errors[0])
        content += "\n"
        x = open(f, "w")
        x.write(content)

do_something(PATH)
```
2018-02-26 12:34:52 +00:00
bors
4a70e27219 Auto merge of #48082 - jseyfried:improve_struct_field_hygiene, r=petrochenkov
macros: improve struct constructor field hygiene, fix span bug

Fixes #47311.
r? @nrc
2018-02-26 09:41:33 +00:00
Guillaume Gomez
ce6429af7a Fix new tests 2018-02-26 09:56:00 +01:00
Guillaume Gomez
16fb6b082d Reduce error codes length when too much are thrown 2018-02-25 12:15:05 +01:00
Guillaume Gomez
5747fd6611 Update ui tests 2018-02-25 12:15:05 +01:00
kennytm
6627cbae92
Rollup merge of #48302 - mark-i-m:markim_macro-test, r=aturon
Move macro-at-most-once-rep-ambig test to ui test

I had written this test for the feature. Now moving to ui test.
2018-02-25 15:54:46 +08:00
Manish Goregaokar
9523c82543
Rollup merge of #48490 - petrochenkov:orpat, r=eddyb
Implement multiple patterns with `|` in `if let` and `while let` (RFC 2175)

cc https://github.com/rust-lang/rust/issues/48215
2018-02-24 15:52:17 -08:00
Manish Goregaokar
7738eb4ddb
Rollup merge of #48392 - estebank:string, r=petrochenkov
Handle custom diagnostic for `&str + String`

Now all of `&str + &str`, `&str + String` and `String + String` have relevant diagnostic output.
2018-02-24 15:52:09 -08:00
Manish Goregaokar
d45c4a6d27
Rollup merge of #48386 - withoutboats:nonstandard-style, r=Manishearth
Add nonstandard_style alias for bad_style.
2018-02-24 15:52:08 -08:00
Manish Goregaokar
edfdfc2483
Rollup merge of #47689 - davidtwco:issue-45157, r=nikomatsakis
Fix borrow checker unsoundness with unions

Fixes #45157. After discussion with @nikomatsakis on Gitter, this PR only adds a test since the original issue was resolved elsewhere.

r? @nikomatsakis
2018-02-24 15:52:03 -08:00
Manish Goregaokar
182f8820c4 Rollup merge of #48061 - nikomatsakis:nll-do-not-run-mir-typeck-twice, r=eddyb
Fixes #47311.
r? @nrc
2018-02-24 12:48:03 -08:00
Manish Goregaokar
fc7caed04e Rollup merge of #48356 - estebank:unsafe-without-braces, r=nikomatsakis
When encountering invalid token after `unsafe`, mention `{`

Fix #37158.
2018-02-24 12:48:02 -08:00
Manish Goregaokar
387d177ceb Rollup merge of #48246 - estebank:ice, r=nikomatsakis
Avoid ICE in arg mistmatch error for tuple variants

Fix #47706.
2018-02-24 12:48:00 -08:00
Manish Goregaokar
a79e5e210e Rollup merge of #48084 - cramertj:impl-trait-errors, r=nikomatsakis
Error on nested impl Trait and path projections from impl Trait

cc #34511

r? @nikomatsakis
2018-02-24 12:47:58 -08:00
Manish Goregaokar
25ec810921
Rollup merge of #47987 - Zoxc:rm-recursion-checking, r=eddyb
Remove "static item recursion checking" in favor of relying on cycle checks in the query engine

Tests are changed to use the cycle check error message instead. Some duplicate tests are removed.

r? @eddyb
2018-02-24 08:55:36 -08:00
Vadim Petrochenkov
8640a51ff8 Implement multiple patterns with | in if let and while let 2018-02-24 03:12:35 +03:00
Manish Goregaokar
9f36a35e61
Rollup merge of #48221 - rkruppe:improve-ctypes-lint, r=estebank
Overhaul improper_ctypes output

This snowballed into a rather big set of improvements to the diagnostics of the improper_ctypes lint. See commits for details, including effects of each change on the `compile-fail/improper-ctypes.rs` test (now a UI test), which is pretty gnarly and hopefully not representative of real code, but covers a lot of different error cases.

Fixes #42050
2018-02-23 10:24:52 -08:00
Manish Goregaokar
1e67c1315b
Rollup merge of #48123 - nikomatsakis:issue-47244-expected-num-args, r=estebank
detect wrong number of args when type-checking a closure

Instead of creating inference variables for those argument types, use
the trait error-reporting code to give a nicer error. This also
improves some other spans for existing tests.

Fixes #47244

r? @estebank
2018-02-23 10:24:48 -08:00
Niko Matsakis
2370b60529 update tests and reference files
The type checker invokes the borrow checker for closures it finds, so
removing the NLL type checker affects ordering of errors somewhat.
2018-02-23 10:40:57 -05:00
bors
063deba92e Auto merge of #47799 - topecongiro:fix-span-of-visibility, r=petrochenkov
Fix span of visibility

This PR

1. adds a closing parenthesis to the span of `Visibility::Crate` (e.g. `pub(crate)`). The current span only covers `pub(crate`.
2. adds a `span` field to `Visibility::Restricted`. This span covers the entire visibility expression (e.g. `pub (in self)`). Currently all we can have is a span for `Path`.

This PR is motivated by the bug found in rustfmt (https://github.com/rust-lang-nursery/rustfmt/issues/2398).

The first change is a strict improvement IMHO. The second change may not be desirable, as it adds a field which is currently not used by the compiler.
2018-02-23 11:21:29 +00:00
bors
928435305a Auto merge of #48052 - eddyb:deggregate, r=nikomatsakis
rustc_mir: handle all aggregate kinds in, and always run, the deaggregator.

This helps with removing`Rvalue::Aggregate` from the MIR, and with enabling more optimizations.
r? @nikomatsakis
2018-02-23 02:21:06 +00:00
Guillaume Gomez
ad83b47802
Rollup merge of #48198 - csmoe:inform_type_annotations, r=estebank
inform user where to give a type annotation

should resolve #47777
previous pull request https://github.com/rust-lang/rust/pull/47982 was closed because of a mistaken rebase.
r? @estebank
2018-02-21 16:29:48 +01:00
Esteban Küber
20bc72e693 Handle custom diagnostic for &str + String 2018-02-20 22:46:51 -08:00
boats
5949d8b2d7
Fix internal references to bad_style in test code. 2018-02-20 15:57:16 -08:00
boats
21e2a5e8d8
Fix filepath in lint test. 2018-02-20 14:44:39 -08:00
boats
6fe5f42e37
Fix carets. 2018-02-20 13:38:46 -08:00
boats
cf6e2f53ba
Add nonstandard_style alias for bad_style. 2018-02-20 13:28:51 -08:00
Esteban Küber
1aad320974 When encountering invalid token after unsafe, mention { 2018-02-19 21:58:36 -08:00
Eduard-Mihai Burtescu
6e5dacbd5e rustc_mir: always run the deaggregator. 2018-02-20 02:50:26 +02:00
Jeffrey Seyfried
1e037f4172 Update tests. 2018-02-19 10:49:25 -08:00
csmoe
4370a5877c fix tyvar_behind_raw_pointer error code 2018-02-18 11:07:52 +08:00
Mark Mansi
6ad328ca77 Move macro-at-most-once-rep-ambig test to ui test 2018-02-17 11:42:11 -06:00
Matthias Krüger
4452446292 fix more typos found by codespell. 2018-02-17 17:38:49 +01:00
Seiichi Uchida
291c51b9c8 Fix up tests and typos 2018-02-18 00:10:40 +09:00
moe
2cf683edc0
Merge branch 'master' into inform_type_annotations 2018-02-17 22:22:26 +08:00
csmoe
0be2dc8d9b fix stderr 2018-02-17 14:18:53 +00:00
Esteban Küber
b9fa2dac25 Avoid ICE in arg mistmatch error for tuple variants 2018-02-15 14:47:47 -08:00
Robin Kruppe
051ea5cc9b [improper_ctypes] Don't suggest raw pointers when encountering trait objects
It's unhelpful since raw pointers to trait objects are also FFI-unsafe and casting to a thin raw pointer loses the vtable. There are working solutions that _involve_ raw pointers but they're too complex to explain in one line and have serious trade offs.
2018-02-15 19:49:50 +01:00
Robin Kruppe
9d493c897b [improper_ctypes] Point at definition of non-FFI-safe type if possible 2018-02-15 18:10:55 +01:00
Robin Kruppe
22a171609b [improper_ctypes] Suggest repr(transparent) for structs
The suggestion is unconditional, so following it could lead to further errors. This is already the case for the repr(C) suggestion, which makes this acceptable, though not *good*. Checking up-front whether the suggestion can help would be great but applies more broadly (and would require some refactoring to avoid duplicating the checks).
2018-02-15 18:10:54 +01:00
Robin Kruppe
9b5f47ec48 [improper_ctypes] Overhaul primary label
- Always name the non-FFI-safe
- Explain *why* the type is not FFI-safe
- Stop vaguely gesturing at structs/enums/unions if the non-FFI-safe types occured in a field.

The last part is arguably a regression, but it's minor now that the non-FFI-safe type is actually named. Removing it avoids some code duplication.
2018-02-15 18:10:54 +01:00
Robin Kruppe
7ac5e96f4a [improper_ctypes] Use a 'help:' line for possible fixes 2018-02-15 17:47:53 +01:00
Robin Kruppe
1f0e1a0439 Convert compile-fail/lint-ctypes.rs to ui test 2018-02-15 17:47:53 +01:00
Taylor Cramer
9e9c55f8fd Update E0657 stderr to match changed test 2018-02-14 10:22:12 -08:00
kennytm
dcb15269f6
Rollup merge of #48154 - estebank:issue-31481, r=nikomatsakis
Continue parsing function after finding `...` arg

When encountering a variadic argument in a function definition that
doesn't accept it, if immediately after there's a closing paren,
continue parsing as normal. Otherwise keep current behavior of emitting
error and stopping.

Fix #31481.
2018-02-14 18:25:21 +08:00
kennytm
a5c3209374
Rollup merge of #48033 - GuillaumeGomez:better-char-cast-message, r=estebank
Show better warning for trying to cast non-u8 scalar to char

Fixes #44201.
2018-02-14 16:14:31 +08:00
csmoe
20dcc72127 inform type annotations 2018-02-14 11:06:08 +08:00