Commit graph

30568 commits

Author SHA1 Message Date
Dylan MacKenzie
9950a1f3bd Add test for ?const and ? on the same bound 2020-01-09 16:47:05 -08:00
Dylan MacKenzie
343e1570a9 Add tests for RFC 2632 2020-01-09 16:47:05 -08:00
Esteban Küber
6e04cf062f review comments: more tests 2020-01-09 15:43:20 -08:00
Esteban Küber
c751961d29 Extend support of _ in type parameters
- Account for `impl Trait<_>`.
 - Provide a reasonable `Span` for empty `Generics` in `impl`s.
 - Account for `fn foo<_>(_: _) {}` to suggest `fn foo<T>(_: T) {}`.
 - Fix #67995.
2020-01-09 14:20:53 -08:00
Mazdak Farrokhzad
915db7ae64 expect fn after const unsafe / const extern 2020-01-09 23:02:34 +01:00
Yuki Okushi
54f860158b Fix ICE #68058 2020-01-10 06:52:22 +09:00
Yuki Okushi
8de73bc10c
Rollup merge of #67975 - EmbarkStudios:export-statics-wasm, r=alexcrichton
Export public scalar statics in wasm

Fixes #67453

I am not sure which export level statics should get when exporting them in wasm. This small change fixes the issue that I had, but this might not be the correct way to implement this.
2020-01-10 04:18:39 +09:00
Yuki Okushi
08c5999dc4
Rollup merge of #67967 - JohnTitor:fix-ice-0107, r=matthewjasper
Delay bug to prevent ICE in MIR borrowck

Fixes #67947

r? @matthewjasper
2020-01-10 04:18:37 +09:00
Vadim Petrochenkov
b82cd9f639 Address review comments + Update NLL tests 2020-01-09 21:49:32 +03:00
Vadim Petrochenkov
642669c74d Update tests 2020-01-09 21:23:12 +03:00
Aaron Hill
4840cd8117
Don't discard marker trait impls when inference variables are present
Fixes #61651

Previously, we would unconditionally discard impl candidates for marker
traits during trait selection. However, if the predicate had inference
variables, this could have the effect of constrainting inference
variables (due to a successful trait selection) when we would have
otherwise failed due to mutliple applicable impls,

This commit prevents marker trait impls from being discarded while the
obligation predicate has any inference variables, ensuring that
discarding impls will never cause us to incorrectly constraint inference
variables.
2020-01-09 10:01:20 -05:00
Tomasz Miąsko
0c6b1a7e3c Link sanitizer runtimes instead of injecting crate dependencies 2020-01-09 07:54:02 +01:00
Tomasz Miąsko
36d0812570 Remove sanitizer_runtime attribute 2020-01-09 07:54:02 +01:00
Felix S. Klock II
31938366d2 Keep plugging holes in the test to placate CI.
If this happens again, I'm going to change tack and make this
an `// only-linux` test or something along those lines.
2020-01-09 05:20:06 +01:00
Mazdak Farrokhzad
5e6eeb092d
Rollup merge of #68024 - petrochenkov:recoverall, r=Centril
Remove `-Z continue-parse-after-error`

We are just always recovering and continuing now.

r? @estebank @Centril
2020-01-09 00:22:20 +01:00
Mazdak Farrokhzad
d2922e51a7
Rollup merge of #68023 - FSciammarella:master, r=Centril,varkor
Fix issue #68008

Correcting Typo on error message. From "substract" to "subtract".

Fixes #68008.
2020-01-09 00:22:18 +01:00
Mazdak Farrokhzad
916a7d3a2c
Rollup merge of #67990 - Centril:slice-pats-move-tests-match, r=matthewjasper
slice patterns: harden match-based borrowck tests

This hardens some move-checking tests wrt. slice patterns and `match` expressions.

r? @matthewjasper
cc @pnkfelix
cc https://github.com/rust-lang/rust/pull/67712
cc https://github.com/rust-lang/rust/issues/53114
2020-01-09 00:22:14 +01:00
Mazdak Farrokhzad
0b3ef24e75
Rollup merge of #67979 - Centril:hir-cleanup, r=Zoxc
Move `intravisit` => `rustc_hir` + misc cleanup

Working towards https://github.com/rust-lang/rust/issues/65031.
This should eventually enable getting rid of rustc as a dependency in various passes (e.g. lints).

cc https://github.com/rust-lang/rust/pull/67806 (this also facilitates liberating lints from tcx)
cc https://github.com/rust-lang/rust/pull/67922 (some other dep reductions)

r? @Zoxc
2020-01-09 00:22:11 +01:00
Mazdak Farrokhzad
1a0b2a5aaa
Rollup merge of #67747 - estebank:bare-assoc-const, r=Centril
Explain that associated types and consts can't be accessed directly on the trait's path

Partially address #44539.
2020-01-09 00:22:07 +01:00
Mazdak Farrokhzad
60bef14bbc
Rollup merge of #67630 - oli-obk:extern_ptr_dangling, r=spastorino
Treat extern statics just like statics in the "const pointer to static" representation

fixes #67612

r? @spastorino

cc @RalfJung this does not affect runtime promotion at all. This is just about promotion within static item bodies.
2020-01-09 00:22:05 +01:00
Felipe Sciammarella
7de174b86e Fix Typo on cannot "substract"
Fix Typo on hir::BinOpKind::Sub

"substract" to "subtract"

Fix Typo on "Error cannot substract"

Fix Typo on cannot "substract"
2020-01-08 19:25:38 -03:00
Mazdak Farrokhzad
0997388b87 normalize rustc::hir::intravisit imports 2020-01-08 22:09:42 +01:00
Yuki Okushi
4fce9c27fb Delay bug to prevent ICE in MIR borrowck 2020-01-09 05:57:28 +09:00
Vadim Petrochenkov
41a93cba38 Remove -Z continue-parse-after-error 2020-01-08 21:48:04 +03:00
Esteban Küber
ac3d4cccea Explain that associated types and consts can't be accessed directly on the trait's path 2020-01-08 09:41:51 -08:00
Esteban Küber
542be6fb6c review comment: wording 2020-01-08 09:30:27 -08:00
Esteban Küber
0dcdbaec0b Point at the def span of trait refs E0277 2020-01-08 09:30:27 -08:00
Esteban Küber
c55615155d review comments 2020-01-08 09:29:47 -08:00
Esteban Küber
9c0000caca Point at opaque and closure type definitions in type errors 2020-01-08 09:29:47 -08:00
Esteban Küber
2c5766f2d4 Unify output of "variant not found" errors 2020-01-08 08:05:31 -08:00
Yuki Okushi
1f94425864
Rollup merge of #67955 - ollie27:rustdoc_cfg_dupes, r=GuillaumeGomez
rustdoc: Remove more `#[doc(cfg(..))]` duplicates

This is a follow up to #66959.

r? @GuillaumeGomez
2020-01-09 00:29:17 +09:00
Yuki Okushi
1c9b8036bf
Rollup merge of #67887 - anp:tracked-std-panics, r=nagisa
`Option::{expect,unwrap}` and `Result::{expect, expect_err, unwrap, unwrap_err}` have `#[track_caller]`

The annotated functions now produce panic messages pointing to the location where they were called, rather than `core`'s internals.
2020-01-09 00:29:15 +09:00
Yuki Okushi
03fe834a23
Rollup merge of #67875 - dtolnay:hidden, r=GuillaumeGomez
Distinguish between private items and hidden items in rustdoc

I believe rustdoc should not be conflating private items (visibility lower than `pub`) and hidden items (attribute `doc(hidden)`). This matters now that Cargo is passing --document-private-items by default for bin crates. In bin crates that rely on macros, intentionally hidden implementation details of the macros can overwhelm the actual useful internal API that one would want to document.

This PR restores the strip-hidden pass when documenting private items, and introduces a separate unstable --document-hidden-items option to skip the strip-hidden pass. The two options are orthogonal to one another.

Fixes #67851. Closes #60884.
2020-01-09 00:29:13 +09:00
Yuki Okushi
429a7e7522
Rollup merge of #67849 - cjkenn:check-sorted-words, r=estebank
Add a check for swapped words when we can't find an identifier

Fixes #66968

Couple things here:
1. The matches take the precedence of case insensitive match, then levenshtein match, then swapped words match. Doing this allows us to not even check for swapped words unless the other checks return `None`.
2. I've assumed that the swapped words check is not held to the limits of the max levenshtein distance threshold (ie. we want to try and find a match even if the levenshtein distance is very high). This means that we cannot perform this check in the `fold` that occurs after the `filter_map` call, because the candidate will be filtered out. So, I've split this into two separate `fold` calls, and had to collect the original iterator into a vec so it can be copied (I don't think we want to change the function signature to take a vec or require the `Copy` trait). An alternative implemenation may be to remove the `filter_map`, `fold` over the entire iterator, and do a check against `max_dist` inside the relevant cases there.

r? @estebank
2020-01-09 00:29:12 +09:00
maik
f1fb384cd6 Check for the entry kind 2020-01-08 10:05:44 +01:00
maik
b81ab44a8f Remove unnecessary global counting 2020-01-08 09:53:33 +01:00
Mazdak Farrokhzad
2c3e5d3de0 - remove syntax::{span_warn!, span_err!, span_fatal!. struct_err!}
- remove syntax::{help!, span_help!, span_note!}
- remove unused syntax::{struct_span_fatal, struct_span_err_or_warn!, span_err_or_warn!}
- lintify check_for_bindings_named_same_as_variants + conflicting_repr_hints
- inline syntax::{struct_span_warn!, diagnostic_used!}
- stringify_error_code! -> error_code! & use it more.
- find_plugin_registrar: de-fatalize an error
- de-fatalize metadata errors
- move type_error_struct! to rustc_typeck
- struct_span_err! -> rustc_errors
2020-01-08 04:25:33 +01:00
Mazdak Farrokhzad
0a6cdc231e slice patterns: harden match-based borrowck tests 2020-01-08 00:42:53 +01:00
Nikita Popov
b27b1d8efc Remove legacy debuginfo tests
These are no longer relevant, as our minimum supported version
is LLVM 7.
2020-01-07 21:28:22 +01:00
Nikita Popov
00daf2dabc Account for pointer type suffix in prefetch test 2020-01-07 21:28:22 +01:00
Nikita Popov
f2ad997921 Handle extra attributes in repeat-trusted-len.rs test 2020-01-07 21:28:22 +01:00
Nikita Popov
e365bc7435 Update codegen tests with unnamed arguments 2020-01-07 21:28:22 +01:00
Nikita Popov
3d8f454cd0 Update bool-cmp.rs codegen 2020-01-07 21:28:22 +01:00
Maik Klein
eddb3f0668 Fix indentation 2020-01-07 19:42:35 +01:00
Maik Klein
a526c8d7fd Add tests for static variables 2020-01-07 19:37:24 +01:00
Adam Perry
3acd346594 Skip caller location test in wasm32. 2020-01-07 07:22:49 -08:00
Yuki Okushi
b065031096
Rollup merge of #67936 - euclio:assoc-type-bad-style, r=Centril
fire "non_camel_case_types" for associated types

Fixes #67920.
2020-01-07 13:46:13 +09:00
Yuki Okushi
c07204b1d1
Rollup merge of #67908 - ollie27:rustdoc_const_html_escape, r=GuillaumeGomez
rustdoc: HTML escape const values

r? @GuillaumeGomez
2020-01-07 13:46:07 +09:00
Yuki Okushi
9ef3b2ca2a
Rollup merge of #67898 - matthewjasper:newtype-index-hygiene, r=Centril
Improve hygiene of `newtype_index`

`newtype_index` no longer needs `rustc_index::vec::Idx` to be in scope.

r? @Centril
2020-01-07 13:46:05 +09:00
Yuki Okushi
6d9913d51b
Rollup merge of #67880 - lbonn:fix/multi-substs, r=petrochenkov
Handle multiple error fix suggestions carefuly

The existing code seems to assume that substitutions spans are disjoint,
which is not always the case.

In the example:

    pub trait AAAA {}
    pub trait B {}
    pub trait C {}
    pub type T<P: AAAA + B + C> = P;

, we get three substituions starting from ':' and ending respectively at
the end of each trait token.

With the former offset calculation, this would cause `underline_start` to
eventually become negative before being converted to `usize`...

The new version may report erroneous results for non perfectly overlapping
substitutions but I don't know if such examples exist. Alternatively, we
could detect these cases and trim out overlapping substitutions.

Fixes #67690
2020-01-07 13:46:04 +09:00