Commit Graph

101109 Commits

Author SHA1 Message Date
Ralf Jung
f6d70b42b8 remove write_repeat; it is subsumed by the new write_bytes 2019-10-21 11:08:37 +02:00
Ralf Jung
d4b365429d points the user away from the Allocation type and towards the Memory type 2019-10-21 10:55:03 +02:00
Ralf Jung
55b787e675 keep the root dir clean from debugging 2019-10-21 10:30:35 +02:00
Oliver Scherer
875bdd5dbe Report even duplilcate errors in case the feature gat is not active 2019-10-21 10:12:09 +02:00
bors
b7a9c285a5 Auto merge of #65594 - RalfJung:miri, r=oli-obk
bump miri

Fixes https://github.com/rust-lang/rust/issues/65529
2019-10-21 07:50:52 +00:00
Nicholas Nethercote
08e2f05549 Remove InternedString.
By using `LocalInternedString` instead for the few remaining uses.
2019-10-21 18:30:40 +11:00
Nicholas Nethercote
2da7a9c0d9 Use Symbol for codegen unit names.
This is a straightforward replacement except for two places where we
have to convert to `LocalInternedString` to get a stable sort.
2019-10-21 18:30:40 +11:00
Nicholas Nethercote
dddacf1eb3 Change SymbolName::name from InternedString to Symbol.
This requires changing the `PartialOrd`/`Ord` implementations to look at
the chars rather than the symbol index.
2019-10-21 18:30:32 +11:00
Oliver Scherer
0653694fdc Don't silently do nothing on mis_use of check_union_fields 2019-10-21 09:08:05 +02:00
ben
aa3d28f9a8 Fix canonicalize_const_var from leaking inference variables through
it's type.
2019-10-21 19:52:32 +13:00
Guanqun Lu
642da6e12a use unwrap_or in lint code 2019-10-21 14:18:09 +08:00
Nicholas Nethercote
b8214e9b44 Convert fields within DefPathData from InternedString to Symbol.
It's a full conversion, except in `DefKey::compute_stable_hash()` where
a `Symbol` now is converted to an `InternedString` before being hashed.
This was necessary to avoid test failures.
2019-10-21 17:17:36 +11:00
Igor Aleksanov
ae04dc8473 Remove unneccessary use under cfg(unix) 2019-10-21 09:05:40 +03:00
Nicholas Nethercote
ddc1c27975 Eliminate intersect_opt.
Its fourth argument is always `Some(pred)`, so the pattern matching is
unnecessary. This commit inlines and removes it.
2019-10-21 15:42:32 +11:00
bors
1ba7b4ecef Auto merge of #65630 - ecstatic-morse:graphviz-tidy, r=Mark-Simulacrum
Check all files in `src/test` for `borrowck_graphviz_postflow`

This attribute causes DOT files to be generated in the top-level directory. It is intended to be used only temporarily and should never appear on master. This also tells git to ignore DOT files in the root or the  `mir_dump` directory, which `-Z dump-mir` uses by default.

This will prevent #65071 from occurring again. It needs to be merged after #65629, otherwise `tidy` will start failing.

r? @Mark-Simulacrum
2019-10-21 04:01:37 +00:00
Wesley Wiser
2ec73395b9 Improve SimplifyLocals pass so it can remove unused consts
The `ConstProp` can cause many locals to be initialized to a constant
value and then never read from. `ConstProp` can also evaluate ZSTs into
constant values. Previously, many of these would be removed by other
parts of the MIR optimization pipeline. However, evaluating ZSTs
(especially `()`) into constant values defeated those parts of the
optimizer and so in a2e3ed5c05, I added a
hack to `ConstProp` that skips evaluating ZSTs to avoid that regression.

This commit changes `SimplifyLocals` so that it doesn't consider writes
of const values to a local to be a use of that local. In doing so,
`SimplifyLocals` is able to remove otherwise unused locals left behind
by other optimization passes (`ConstProp` in particular).
2019-10-20 23:49:42 -04:00
Wesley Wiser
4592a9eb3f Cleanup ConstProp::visit_statement() 2019-10-20 23:49:12 -04:00
Nicholas Nethercote
c3b3a86124 Remove unnecessary Hash bounds from various types. 2019-10-21 13:48:20 +11:00
Nicholas Nethercote
77c50dc508 Remove unnecessary trait bounds from keys::Keys. 2019-10-21 13:45:21 +11:00
Nicholas Nethercote
78c3427308 Remove unnecessary impl Clean<String> for InternedString. 2019-10-21 11:33:52 +11:00
Nicholas Nethercote
c325553a30 Convert InternedStrings to Symbols in UnsafetyViolation. 2019-10-21 11:32:55 +11:00
Nicholas Nethercote
02edd14cde Convert some InternedStrings to Symbols.
This avoids the needs for various conversions, and makes the code
slightly faster, because `Symbol` comparisons and hashing is faster.
2019-10-21 11:31:02 +11:00
Ryo Onodera
101e1f6f8f
Correctly note code as Ok not error for E0573 2019-10-21 09:25:57 +09:00
bors
770b9e3012 Auto merge of #65644 - Centril:rollup-gez1xhe, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #65314 (rustdoc: forward -Z options to rustc)
 - #65592 (clarify const_prop ICE protection comment)
 - #65603 (Avoid ICE when include! is used by stdin crate)
 - #65614 (Improve error message for APIT with explicit generic arguments)
 - #65629 (Remove `borrowck_graphviz_postflow` from test)
 - #65633 (Remove leading :: from paths in doc examples)
 - #65638 (Rename the default argument 'def' to 'default')
 - #65639 (Fix parameter name in documentation)

Failed merges:

r? @ghost
2019-10-20 23:40:12 +00:00
Mazdak Farrokhzad
836e45d26b
Rollup merge of #65639 - adrianheine:patch-2, r=jonas-schievink
Fix parameter name in documentation
2019-10-21 01:39:21 +02:00
Mazdak Farrokhzad
5a29bd9f9b
Rollup merge of #65638 - dsincl12:master, r=Centril
Rename the default argument 'def' to 'default'

Fixes: #65492
2019-10-21 01:39:20 +02:00
Mazdak Farrokhzad
8bdae3af17
Rollup merge of #65633 - Rantanen:doc-example-paths, r=Centril
Remove leading :: from paths in doc examples

Noted some pre-2018 path syntax in the doc examples, for example:
https://doc.rust-lang.org/std/process/fn.exit.html

```rust
fn main() {
    ::std::process::exit(match run_app() {
       Ok(_) => 0,
       ...
```

Couldn't find an existing issue on this (then again, "::" makes for an annoying thing to search for) so if there is already something fixing this and/or there's a reason to not fix it, just close this PR.

(Also fixed indentation in the `process::exit()` docs)
2019-10-21 01:39:18 +02:00
Mazdak Farrokhzad
041c654105
Rollup merge of #65629 - ecstatic-morse:remove-graphviz, r=Mark-Simulacrum
Remove `borrowck_graphviz_postflow` from test

Resolves #65071 (again).

Sorry. I've added a commit hook to prevent this from happening in the future.

r? @petrochenkov
2019-10-21 01:39:17 +02:00
Mazdak Farrokhzad
4de42a7a0b
Rollup merge of #65614 - varkor:apit-explicit-generics, r=matthewjasper
Improve error message for APIT with explicit generic arguments

This is disallowed with type or const generics. cc https://github.com/rust-lang/rust/issues/61410.
2019-10-21 01:39:16 +02:00
Mazdak Farrokhzad
c9c32a7e7d
Rollup merge of #65603 - mystor:resolve_path_ice, r=petrochenkov
Avoid ICE when include! is used by stdin crate

This should hopefully also eliminate the ICE when using `include_bytes!`, `include_str!` and `#[doc(include = "...")]` with a stdio input.

I couldn't see a clear way to write a compile-fail test using compiletest with a stdio input, so I haven't written any tests for this change.

Fixes #63900
2019-10-21 01:39:14 +02:00
Mazdak Farrokhzad
f8d1c3589e
Rollup merge of #65592 - RalfJung:const-prop-comment, r=wesleywiser
clarify const_prop ICE protection comment

This is based on discussion at https://github.com/rust-lang/rust/pull/64890/files#r334555787.

That said, why are function arguments the only unsized locals that could remain uninitialized? Couldn't we also fail to initialize some local but still go on with const_prop, and then hit a line that takes a reference to that? Cc @wesleywiser @oli-obk ; I don't know enough about const-prop to understand why this can happen only for function arguments.

~~The PR includes https://github.com/rust-lang/rust/pull/64890; the only new commit is 05e4e6ba0d5.~~
2019-10-21 01:39:13 +02:00
Mazdak Farrokhzad
194d1935d3
Rollup merge of #65314 - tmiasko:rustdoc-z, r=ollie27
rustdoc: forward -Z options to rustc

Currently rustdoc does not forward `-Z` options to rustc when building
test executables. This makes impossible to use rustdoc to run test
samples when crate under test is instrumented with one of sanitizers
`-Zsanitizer=...`, since the final linking step will not include
sanitizer runtime library.

Forward `-Z` options to rustc to solve the issue.

Helps with #43031.
2019-10-21 01:39:11 +02:00
Adrian Heine né Lang
e697ffbbcb
Fix parameter name in documentation 2019-10-20 23:13:41 +02:00
David Sinclair
2a5c31ca51 Rename the default argument 'def' to 'default'
Fixes: #65492
2019-10-20 22:22:44 +02:00
Nicholas Nethercote
c290293cf2 Derive Rustc{En,De}codable for TokenStream.
`TokenStream` used to be a complex type, but it is now just a newtype
around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding
that discards the `IsJoint` and custom decoding that adds `NonJoint`
back in for every token tree. This requires building intermediate
`Vec<TokenTree>`s.

This commit makes `TokenStream` derive `Rustc{En,De}codable`. This
simplifies the code, and avoids the creation of the intermediate
vectors, saving up to 3% on various benchmarks. It also changes the AST
JSON output in one test.
2019-10-21 06:54:41 +11:00
bors
7979016aff Auto merge of #65632 - JohnTitor:rollup-adb16gb, r=JohnTitor
Rollup of 5 pull requests

Successful merges:

 - #65460 (Clean up `contains()` `insert()` chains on HashSet)
 - #65463 (Avoid unnecessary arena allocations in `expand_pattern()`.)
 - #65579 (Changed `resolve_type_vars_with_obligations` to also resolve const inference variables)
 - #65605 (Remove unreachable unit tuple compare binop codegen)
 - #65626 (trivial typo fix)

Failed merges:

r? @ghost
2019-10-20 19:45:09 +00:00
Mikko Rantanen
040d88dda1
Remove leading :: from paths in doc examples 2019-10-20 21:13:47 +03:00
Yuki Okushi
c609a5aafc
Rollup merge of #65626 - guanqun:patch-1, r=varkor
trivial typo fix
2019-10-21 03:10:59 +09:00
Yuki Okushi
4f74fd745f
Rollup merge of #65605 - bjorn3:fix_63906, r=eddyb
Remove unreachable unit tuple compare binop codegen

Closes #63906
Fixes #63551

This is based on #63906 by @luigishat, who had trouble with rebasing his PR.
2019-10-21 03:10:58 +09:00
Yuki Okushi
3e8acaf68c
Rollup merge of #65579 - skinny121:resolve_const_vars, r=varkor
Changed `resolve_type_vars_with_obligations` to also resolve const inference variables

Fixes #65380
r? @varkor
2019-10-21 03:10:57 +09:00
Yuki Okushi
cc42adf3a2
Rollup merge of #65463 - nnethercote:rm-arena-allocation-from-expand_pattern, r=varkor
Avoid unnecessary arena allocations in `expand_pattern()`.

`expand_pattern()` has two callsites. One of them needs arena
allocation, but the other does not.

This commit moves the arena allocation out of the function. This avoids
the allocation of many 4 KiB page arena chunks that only hold a single
small allocation. It reduces the number of bytes allocated by up to 2%
for various benchmarks, albeit without only a very small improvement in
runtime.
2019-10-21 03:10:55 +09:00
Yuki Okushi
2518bbd5a3
Rollup merge of #65460 - sinkuu:contains_insert, r=varkor
Clean up `contains()` `insert()` chains on HashSet

They can be merged to a single `insert()` call, which may avoid double-hashing/lookup of the value.
2019-10-21 03:10:54 +09:00
Dylan MacKenzie
efcae577bf Ignore DOT files in .gitignore 2019-10-20 11:03:13 -07:00
Dylan MacKenzie
c9e361fcd1 Check all files in src/test for borrowck_graphviz_postflow
This attribute causes DOT files to be generated in the top-level
directory. It is intended to be used only temporarily and should never
appear on master.

This will prevent #65071 from occurring again.
2019-10-20 10:53:10 -07:00
Dylan MacKenzie
51a5b49bda Remove borrowck_graphviz_postflow from test 2019-10-20 09:44:21 -07:00
guanqun
379733e8a0
typo fix 2019-10-20 23:03:33 +08:00
bors
89e645ace8 Auto merge of #65622 - Centril:rollup-l8orba7, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #64996 (Inline `ptr::null(_mut)` even in debug builds)
 - #65551 (Avoid realloc in `CString::new`)
 - #65593 (add test for calling non-const fn)
 - #65595 (move `parse_cfgspecs` to `rustc_interface`)
 - #65600 (Remove unneeded `ref` from docs)
 - #65602 (Fix plural mistake in emitter.rs)

Failed merges:

r? @ghost
2019-10-20 14:07:46 +00:00
Guillaume Gomez
2541d49601 Update ui tests 2019-10-20 13:01:21 +02:00
Guillaume Gomez
429f91c9e6 Add long error explanation for E0588 2019-10-20 13:01:21 +02:00
Mazdak Farrokhzad
ba42fc27fd
Rollup merge of #65602 - varkor:other-candidates, r=Centril
Fix plural mistake in emitter.rs
2019-10-20 12:40:22 +02:00