Commit graph

21441 commits

Author SHA1 Message Date
gaurikholkar
0c7fc046d3 code refactor, modify compile-fail tests 2018-03-10 20:55:02 +05:30
bors
2f0e6a3ba5 Auto merge of #48388 - kyrias:relro-level-cg, r=alexcrichton
Add relro-level tests

The `relro-level` debugging flag was added in #43170 which was merged in July 2017.  This PR moves this flag to be a proper codegen flag.
2018-03-10 13:31:06 +00:00
Ralf Jung
0e6d40a3fb type_alias_bounds lint: If the type alias uses an associated type without "as", suggest to use the "as" form instead.
This is necessary to get rid of the type bound, and hence silence the warning.
2018-03-10 13:32:11 +01:00
Ralf Jung
562b44d8c3 Rename ignored_generic_bounds -> type_alias_bounds
First of all, the lint is specific for type aliases.  Second, it turns out the
bounds are not entirely ignored but actually used when accessing associated
types.  So change the wording of the lint, and adapt its name to reality.

The lint has never been on stable or beta, so renaming is safe.
2018-03-10 12:07:26 +01:00
bors
87344aa59a Auto merge of #47574 - zilbuz:issue-14844, r=nikomatsakis
Show the used type variable when issuing a "can't use type parameters from outer function" error message

Fix #14844

r? @estebank
2018-03-10 10:52:07 +00:00
Ralf Jung
81130ed4b1 Split param-bounds-ignored into two, it was testing two independent things
Also, tweak the test for ignored type aliases such that replacing the type alias
by a newtype struct leads to a well-formed type definition, and errors when used
the way the type alias is used.
2018-03-10 11:25:12 +01:00
bors
948e3a30e6 Auto merge of #48755 - GuillaumeGomez:rustdoc-fixes, r=QuietMisdreavus
Multiple rustdoc fixes

Fixes #48733.

r? @QuietMisdreavus
2018-03-10 08:24:08 +00:00
bobtwinkles
8b4c623702 Remove added two-phase-borrows flag
It seems whatever was causing problems has been fixed.
2018-03-09 19:00:18 -05:00
Guillaume Gomez
7dc71ec009 Remove auto trait implementation section when empty 2018-03-09 22:18:08 +01:00
bobtwinkles
03f198fcee Fix tests after two-phase borrow rewrite 2018-03-09 13:54:26 -05:00
bobtwinkles
47d75afd11 Complete re-implementation of 2-phase borrows
See #48431 for discussion as to why this was necessary and what we hoped to
accomplish. A brief summary:
   - the first implementation of 2-phase borrows was hard to limit in the way we
   wanted. That is, it was too good at accepting all 2-phase borrows rather than
   just autorefs =)
   - Numerous diagnostic regressions were introduced by 2-phase borrow support
   which were difficult to fix
2018-03-09 13:53:35 -05:00
bobtwinkles
138365368a Finally start down the right path 2018-03-09 13:53:35 -05:00
Guillaume Gomez
6235ef0422 Add missing items in the sidebar for functions 2018-03-09 17:45:44 +01:00
Vadim Petrochenkov
c1a73d2f4a tidy: Add a check for stray .stderr and .stdout files in UI test directories 2018-03-09 17:27:22 +03:00
bors
fedce67cd2 Auto merge of #48326 - RalfJung:generic-bounds, r=petrochenkov
Warn about ignored generic bounds in `for`

This adds a new lint to fix #42181. For consistency and to avoid code duplication, I also moved the existing "bounds in type aliases are ignored" here.

Questions to the reviewer:
* Is it okay to just remove a diagnostic error code like this? Should I instead keep the warning about type aliases where it is? The old code provided a detailed explanation of what's going on when asked, that information is now lost. On the other hand, `span_warn!` seems deprecated (after this patch, it has exactly one user left!).
* Did I miss any syntactic construct that can appear as `for` in the surface syntax? I covered function types (`for<'a> fn(...)`), generic traits (`for <'a> Fn(...)`, can appear both as bounds as as trait objects) and bounds (`for<'a> F: ...`).
* For the sake of backwards compatibility, this adds a warning, not an error. @nikomatsakis suggested an error in https://github.com/rust-lang/rust/issues/42181#issuecomment-306924389, but I feel that can only happen in a new epoch -- right?

Cc @eddyb
2018-03-09 10:45:29 +00:00
James Cowgill
fb806fd9db test: fix repr-transparent-aggregates test on mips64
Since #47964 was merged, 64-bit mips started passing all structures
using 64-bit chunks regardless of their contents. The
repr-transparent-aggregates tests needs updating to cope with this.
2018-03-09 10:21:30 +00:00
James Cowgill
54467ae319 test: ignore asm tests on mips* which won't work
"mov" is not a valid assembly mnemonic on mips.
2018-03-09 10:17:12 +00:00
James Cowgill
e0863c5155 test: ignore mips* in x86_mmx test 2018-03-09 10:17:01 +00:00
James Cowgill
bceb94e8b7 test: ignore stack probe tests on mips* 2018-03-09 10:17:01 +00:00
James Cowgill
59199ebe51 test: remove duplicate ignore-aarch64 from stack-probes test 2018-03-09 10:16:49 +00:00
Manish Goregaokar
68e7282aa8
Rollup merge of #48801 - Manishearth:epoch-features, r=nikomatsakis
Add functionality for gating feature flags on epochs ; rejigger epoch lints

fixes #48794

r? @nikomatsakis
2018-03-08 17:25:57 -08:00
Manish Goregaokar
b228b053ec
Rollup merge of #48527 - zackmdavis:and_the_social_construction_of_tuples, r=estebank
in which parentheses are suggested for should-have-been-tuple-patterns

![destructure_suggest_parens](https://user-images.githubusercontent.com/1076988/36638335-48b082d4-19a7-11e8-9726-0d043544df2f.png)

Programmers used to working in some other languages (such as Python or
Go) might expect to be able to destructure values with comma-separated
identifiers but no parentheses on the left side of an assignment.

Previously, the first name in such code would get parsed as a
single-indentifier pattern—recognizing, for example, the
`let a` in `let a, b = (1, 2);`—whereupon we would have a fatal syntax
error on seeing an unexpected comma rather than the expected semicolon
(all the way nearer to the end of `parse_full_stmt`).

Instead, let's look for that comma when parsing the pattern, and if we
see it, make-believe that we're parsing the remaining elements in a
tuple pattern, so that we can suggest wrapping it all in parentheses. We
need to do this in a separate wrapper method called on a "top-level"
pattern, rather than within
`parse_pat` itself, because `parse_pat` gets called recursively to parse
the sub-patterns within a tuple pattern.

~~We could also do this for `match` arms, `if let`, and `while let`, but
we elect not to in this patch, as it seems less likely for users to make
the mistake in those contexts.~~

Resolves #48492.

r? @petrochenkov
2018-03-08 17:25:55 -08:00
Manish Goregaokar
a08cfc4cb6 Add rust_2018_idioms lint group 2018-03-08 17:10:06 -08:00
Manish Goregaokar
29542ec85a Add test 2018-03-08 17:10:05 -08:00
Basile Desloges
0e68bb9728 Update tests 2018-03-08 22:28:52 +01:00
Zack M. Davis
1f04597c3c in which parentheses are suggested for should-have-been-tuple-patterns
Programmers used to working in some other languages (such as Python or
Go) might expect to be able to destructure values with comma-separated
identifiers but no parentheses on the left side of an assignment.

Previously, the first name in such code would get parsed as a
single-indentifier pattern—recognizing, for example, the
`let a` in `let a, b = (1, 2);`—whereupon we would have a fatal syntax
error on seeing an unexpected comma rather than the expected semicolon
(all the way nearer to the end of `parse_full_stmt`).

Instead, let's look for that comma when parsing the pattern, and if we
see it, momentarily make-believe that we're parsing the remaining
elements in a tuple pattern, so that we can suggest wrapping it all in
parentheses. We need to do this in a separate wrapper method called on
the top-level pattern (or `|`-patterns) in a `let` statement, `for`
loop, `if`- or `while let` expression, or match arm rather than within
`parse_pat` itself, because `parse_pat` gets called recursively to parse
the sub-patterns within a tuple pattern.

Resolves #48492.
2018-03-08 11:30:34 -08:00
Manish Goregaokar
c8a73e438a
Rollup merge of #48752 - alexcrichton:fix-target-feature, r=michaelwoerister
rustc: Fix ICE with `#[target_feature]` on module

This commit fixes an ICE in rustc when `#[target_feature]` was applied to items
other than functions due to the way the feature was validated.
2018-03-08 11:25:59 -08:00
Manish Goregaokar
d7f44ac52c
Rollup merge of #48682 - spastorino:make_causal_lazy, r=nikomatsakis
[NLL] Make causal tracking lazy

Close #46590

cc @nikomatsakis
2018-03-08 11:25:56 -08:00
James Cowgill
dcc438d633 test: ignore mips64 in abi-main-signature-16bit-c-int.rs 2018-03-08 15:29:10 +00:00
James Cowgill
6f55819a1e test: remove useless ignore-mips*el headers 2018-03-08 15:29:10 +00:00
James Cowgill
2bc3f5b053 borrowck-asm: enable on mips 2018-03-08 11:40:00 +00:00
Oliver Schneider
b5ace9a906
Unify the const folding errors
before they differed depending on whether optimizations were on or not
2018-03-08 08:35:39 +01:00
Oliver Schneider
aedd4c61ea
Regenerate tests 2018-03-08 08:35:38 +01:00
Oliver Schneider
208d764833
Adjust test which differs between 32 bit and 64 bit
The differences are not part of what the test is testing, so they were simply removed.
2018-03-08 08:35:38 +01:00
Oliver Schneider
df283df887
Don't use the undefined bytes of PrimVal::Bytes 2018-03-08 08:34:18 +01:00
Oliver Schneider
7218836500
Fix mozjs crater failure 2018-03-08 08:34:18 +01:00
Oliver Schneider
b63c6bbfee
Add regression test 2018-03-08 08:34:17 +01:00
Oliver Schneider
d98a2b90b2
Rebase fallout 2018-03-08 08:34:17 +01:00
Oliver Schneider
2f0e077300
Report tcx errors with the span of the currently evaluating statement 2018-03-08 08:34:17 +01:00
Oliver Schneider
f363e08c9d
Update compile-fail tests 2018-03-08 08:34:17 +01:00
Oliver Schneider
f68dc0190a
Add a test for transmuting via unions in constants 2018-03-08 08:34:17 +01:00
Oliver Schneider
5b698a1040
Unregress error spans in constant errors 2018-03-08 08:34:17 +01:00
Oliver Schneider
421622d8f7
Stage 2 doesn't see suggestion_approximate 2018-03-08 08:34:16 +01:00
Oliver Schneider
f5cc5ca8c7
Remove dead code 2018-03-08 08:34:16 +01:00
Oliver Schneider
8c53d54b98
Update tests 2018-03-08 08:34:16 +01:00
Oliver Schneider
a678044c77
Add regression test for const prop 2018-03-08 08:34:15 +01:00
Oliver Schneider
05a03d7537
Update tests 2018-03-08 08:34:15 +01:00
Oliver Schneider
ceb634a732
Update tests 2018-03-08 08:34:14 +01:00
Oliver Schneider
e093ab0df4
Adjust tests to changed const err lints 2018-03-08 08:34:13 +01:00
Oliver Schneider
d57a109203
Adjust tests to more aggressive const err linting 2018-03-08 08:34:13 +01:00