Commit Graph

51913 Commits

Author SHA1 Message Date
Nicholas Nethercote
4c274b6aea Avoid an unnecessary intermediate value in char_lit().
This makes the function more concise and easier to understand.
2016-09-12 16:15:52 +10:00
bors
ea45edf0ee Auto merge of #35745 - jroesch:soundness-fix-29859, r=nikomatsakis
Fix soundness bug described in #29859

This is an attempt at fixing the problems described in #29859 based on an IRC conversation between @nikomatsakis and I today. I'm waiting on a full build to come back, otherwise both tests trigger the correct error.
2016-09-08 10:40:31 -07:00
bors
c615b21533 Auto merge of #36048 - GuillaumeGomez:code_clean, r=brson
Clean code a bit
2016-09-08 07:20:51 -07:00
bors
0b02ae02bb Auto merge of #36316 - jseyfried:custom_derive_internal_unstable, r=eddyb
Avoid instaiblity errors in code generated by `syntax_ext::deriving::call_intrinsic()`

r? @eddyb
2016-09-08 01:44:51 -07:00
bors
a5dbf8a0f8 Auto merge of #36310 - jstnlef:remove-extraneous-not-equal-impl, r=sfackler
Removing the extraneous not_equal implementation for slices

Happened to stumble upon this one awhile back. Seemed a bit silly to have both the equals and not equals implementation when they're so similar.
2016-09-07 22:30:48 -07:00
bors
4a26286216 Auto merge of #36214 - jseyfried:stackless_expansion, r=nrc
macros: stackless expansion

After this PR, macro expansion cannot overflow the stack unless the expanded crate is too deep to fold.
Everything but the stackless placeholder expansion commit is also groundwork for macro modularization.

r? @nrc or @eddyb
2016-09-07 19:02:51 -07:00
Jared Roesch
a25428269d Fix duplicate error code 2016-09-07 17:22:19 -07:00
bors
a7b2232d20 Auto merge of #36292 - japaric:musl-root, r=alexcrichton
rustbuild: per target musl-root

config.toml now accepts a target.$TARGET.musl-root key that lets you
override the "build" musl-root value, which is set via the --musl-root
flag or via the build.musl-root key.

With this change, it's now possible to compile std for several musl
targets at once. Here's are the sample commands to do such thing:

```
$ configure \
    --enable-rustbuild \
    --target=x86_64-unknown-linux-musl,arm-unknown-linux-musleabi \
    --musl-root=/musl/x86_64-unknown-linux-musl/

$ edit config.toml && tail config.toml
[target.arm-unknown-linux-musleabi]
musl-root = "/x-tools/arm-unknown-linux-musleabi/arm-unknown-linux-musleabi/sysroot/usr"

$ make
```

r? @alexcrichton
With this we should be able to start producing releases of std for arm musl targets
2016-09-07 15:45:14 -07:00
Jeffrey Seyfried
9ac91fa48b Improve directory computation during invocation collection. 2016-09-07 22:42:17 +00:00
Jeffrey Seyfried
2d759046ba Implement stackless placeholder expansion. 2016-09-07 22:42:17 +00:00
Jeffrey Seyfried
d76bf3ed80 Strip unconfigured nodes in the InvocationCollector fold. 2016-09-07 22:41:35 +00:00
Jeffrey Seyfried
3af0c6572e Refactor code out of the folder implementation for StripUnconfigured. 2016-09-07 22:12:30 +00:00
bors
9627e9ef6e Auto merge of #36266 - Sawyer47:issue-35169, r=alexcrichton
rustdoc: Filter more incorrect methods inherited through Deref

Old code filtered out only static methods. This code also excludes &mut self methods if there is no DerefMut implementation.

Fixes #35169
2016-09-07 12:30:03 -07:00
bors
cf0cdc452b Auto merge of #36304 - TimNN:fix-36299, r=eddyb
re-add accidentally removed line in wfcheck

Fixes #36299, introduced in #36119.

r? @eddyb
2016-09-07 09:15:30 -07:00
bors
f707582a43 Auto merge of #36289 - euclio:self-suggestion, r=jseyfried
resolve: Suggest `use self` when import resolves

Improves errors messages by replacing "Maybe a missing `extern crate`" messages
with "Did you mean `self::...`" when the `self` import would succeed.

Fixes #34191.

Thank you for the help @jseyfried!
2016-09-07 05:59:50 -07:00
bors
2819eca69c Auto merge of #36296 - nagisa:pass-timing, r=eddyb
Count and report time taken by MIR passes

There’s some desire for deeper introspectability into what MIR passes cost us.

-Z time-passes after this PR:

```
   Compiling test_shim v0.1.0 (file:///home/nagisa/Documents/rust/rust/src/rustc/test_shim)
time: 0.000; rss: 29MB	parsing
time: 0.000; rss: 29MB	configuration
time: 0.000; rss: 29MB	recursion limit
time: 0.000; rss: 29MB	crate injection
time: 0.000; rss: 29MB	plugin loading
time: 0.000; rss: 29MB	plugin registration
time: 0.032; rss: 54MB	expansion
time: 0.000; rss: 54MB	maybe building test harness
time: 0.000; rss: 54MB	assigning node ids
time: 0.000; rss: 54MB	checking for inline asm in case the target doesn't support it
time: 0.000; rss: 54MB	complete gated feature checking
time: 0.000; rss: 54MB	collecting defs
time: 0.004; rss: 54MB	external crate/lib resolution
time: 0.000; rss: 54MB	early lint checks
time: 0.000; rss: 54MB	AST validation
time: 0.001; rss: 54MB	name resolution
time: 0.000; rss: 54MB	lowering ast -> hir
time: 0.000; rss: 56MB	indexing hir
time: 0.000; rss: 56MB	attribute checking
time: 0.000; rss: 56MB	language item collection
time: 0.000; rss: 56MB	lifetime resolution
time: 0.000; rss: 56MB	looking for entry point
time: 0.000; rss: 56MB	looking for plugin registrar
time: 0.000; rss: 56MB	region resolution
time: 0.000; rss: 56MB	loop checking
time: 0.000; rss: 56MB	static item recursion checking
time: 0.000; rss: 56MB	compute_incremental_hashes_map
time: 0.000; rss: 56MB	load_dep_graph
time: 0.000; rss: 56MB	type collecting
time: 0.000; rss: 56MB	variance inference
time: 0.011; rss: 59MB	coherence checking
time: 0.000; rss: 59MB	wf checking
time: 0.000; rss: 59MB	item-types checking
time: 0.000; rss: 59MB	item-bodies checking
time: 0.000; rss: 59MB	drop-impl checking
time: 0.000; rss: 59MB	const checking
time: 0.000; rss: 59MB	privacy checking
time: 0.000; rss: 59MB	stability index
time: 0.000; rss: 59MB	intrinsic checking
time: 0.000; rss: 59MB	effect checking
time: 0.000; rss: 59MB	match checking
time: 0.000; rss: 59MB	liveness checking
time: 0.000; rss: 59MB	rvalue checking
time: 0.000; rss: 59MB	MIR dump
  time: 0.000; rss: 59MB	SimplifyCfg
  time: 0.000; rss: 59MB	QualifyAndPromoteConstants
  time: 0.000; rss: 59MB	TypeckMir
  time: 0.000; rss: 59MB	SimplifyBranches
  time: 0.000; rss: 59MB	SimplifyCfg
time: 0.000; rss: 59MB	MIR passes
time: 0.000; rss: 59MB	borrow checking
time: 0.000; rss: 59MB	reachability checking
time: 0.000; rss: 59MB	death checking
time: 0.000; rss: 59MB	stability checking
time: 0.000; rss: 59MB	unused lib feature checking
time: 0.000; rss: 59MB	lint checking
time: 0.000; rss: 59MB	resolving dependency formats
  time: 0.000; rss: 59MB	NoLandingPads
  time: 0.000; rss: 59MB	SimplifyCfg
  time: 0.000; rss: 59MB	EraseRegions
  time: 0.000; rss: 59MB	AddCallGuards
  time: 0.000; rss: 59MB	ElaborateDrops
  time: 0.000; rss: 59MB	NoLandingPads
  time: 0.000; rss: 59MB	SimplifyCfg
  time: 0.000; rss: 59MB	Deaggregator
  time: 0.000; rss: 59MB	AddCallGuards
  time: 0.000; rss: 59MB	PreTrans
time: 0.000; rss: 59MB	Prepare MIR codegen passes
  time: 0.000; rss: 59MB	write metadata
  time: 0.000; rss: 61MB	translation item collection
  time: 0.000; rss: 61MB	codegen unit partitioning
  time: 0.000; rss: 61MB	internalize symbols
time: 0.007; rss: 61MB	translation
time: 0.000; rss: 61MB	assert dep graph
time: 0.000; rss: 61MB	serialize dep graph
time: 0.000; rss: 61MB	llvm function passes [2]
time: 0.000; rss: 61MB	llvm function passes [3]
time: 0.000; rss: 61MB	llvm function passes [1]
time: 0.000; rss: 61MB	llvm function passes [0]
time: 0.000; rss: 61MB	llvm module passes [2]
time: 0.000; rss: 61MB	llvm module passes [1]
time: 0.000; rss: 61MB	llvm module passes [0]
time: 0.000; rss: 61MB	llvm module passes [3]
time: 0.001; rss: 62MB	codegen passes [1]
time: 0.001; rss: 62MB	codegen passes [2]
time: 0.001; rss: 62MB	codegen passes [0]
time: 0.001; rss: 62MB	codegen passes [3]
time: 0.001; rss: 63MB	codegen passes [1]
time: 0.005; rss: 63MB	LLVM passes
time: 0.000; rss: 63MB	serialize work products
time: 0.001; rss: 63MB	linking
```

r? @eddyb or @nikomatsakis

cc @nrc, @Mark-Simulacrum
2016-09-07 02:47:35 -07:00
Jeffrey Seyfried
d6ea10ec76 Add regression test. 2016-09-07 07:38:29 +00:00
Jeffrey Seyfried
f84d081a7e Avoid instaiblity errors in code generated by syntax_ext::deriving::call_intrinsic(). 2016-09-07 07:38:26 +00:00
bors
fe278a8a32 Auto merge of #36252 - joshtriplett:union-field-never-used, r=sanxiyn
Fix "field is never used" warning to take unions into account

When compiling code containing a union with an unused field, rustc says
"struct field is never used".

Rather than saying "struct or union", or adding logic to determine the
type of the item, just change the message to "field is never used",
dropping the "struct".

Update tests accordingly.
2016-09-06 20:06:34 -07:00
Jorge Aparicio
8cfc69ecea add utility musl_root method, update config.toml.example 2016-09-06 21:49:02 -05:00
Justin LeFebvre
a77b55d58f remove the extraneous not_equal implementation for slices. 2016-09-06 20:39:58 -04:00
bors
3b272bf310 Auto merge of #36303 - jonathandturner:rollup, r=jonathandturner
Rollup of 8 pull requests

- Successful merges: #36121, #36128, #36241, #36243, #36263, #36267, #36273, #36298
- Failed merges:
2016-09-06 16:45:41 -07:00
bors
923bac4596 Auto merge of #36025 - michaelwoerister:incr-comp-hash-spans, r=nikomatsakis
incr. comp.: Take spans into account for ICH

This PR makes the ICH (incr. comp. hash) take spans into account when debuginfo is enabled.

A side-effect of this is that the SVH (which is based on the ICHs of all items in the crate) becomes sensitive to the tiniest change in a code base if debuginfo is enabled. Since we are not trying to model ABI compatibility via the SVH anymore (this is done via the crate disambiguator now), this should be not be a problem.

Fixes #33888.
Fixes #32753.
2016-09-06 13:22:35 -07:00
Tim Neumann
d8c58d40ef re-add accidentally removed line 2016-09-06 18:53:43 +02:00
Jonathan Turner
20cce247e1 Rollup merge of #36298 - GuillaumeGomez:hashmap_doc, r=steveklabnik
Add missing urls

r? @steveklabnik
2016-09-06 09:38:04 -07:00
Jonathan Turner
8156761e65 Rollup merge of #36273 - apasel422:unsafe_no_drop_flag, r=steveklabnik
Remove mention of `unsafe_no_drop_flag` from Reference and Nomicon
2016-09-06 09:38:03 -07:00
Jonathan Turner
c0e5a777d4 Rollup merge of #36267 - Cobrand:E0559, r=jonathandturner
Updated E0559 to new format

Refactored a method that printed one suggested field name,
into a method that returns an `Option` of a suggestion

(Updated test cases accordingly)

r? @jonathandturner

Closes #36197
2016-09-06 09:38:03 -07:00
Jonathan Turner
2d26603219 Rollup merge of #36263 - apasel422:scoped, r=steveklabnik
Clean up thread-local storage docs

`std` no longer contains an implementation of scoped TLS.

r? @steveklabnik
2016-09-06 09:38:02 -07:00
Jonathan Turner
b5f5f8b865 Rollup merge of #36243 - GuillaumeGomez:hash_map_links, r=steveklabnik
Add missing urls

r? @steveklabnik
2016-09-06 09:38:02 -07:00
Jonathan Turner
4f74f837b6 Rollup merge of #36128 - gavinb:error_msgs_p2, r=jonathandturner
Update Error format for E0516, E0517, E0518

- E0518 Update error format #36111
- E0517 Update error format #36109
- E0516 Update error format #36108
- Part of #35233

r? @jonathandturner
2016-09-06 09:38:02 -07:00
Jonathan Turner
613f35051f Rollup merge of #36121 - Cobrand:master, r=jonathandturner
Updated E0527 to new error format

* Closes #36113
2016-09-06 09:38:01 -07:00
Michael Woerister
3057b7b974 ICH: Make CachingCodemapView robustly handle invalid spans. 2016-09-06 12:14:43 -04:00
bors
13c4e32e7a Auto merge of #36288 - nrc:save-var-value, r=eddyb
save-analysis: some refinement to the value string for variables
2016-09-06 07:46:06 -07:00
ggomez
dc0e9c0b12 Add missing urls 2016-09-06 16:31:18 +02:00
Simonas Kazlauskas
0520698be3 Count and report time taken by MIR passes 2016-09-06 17:19:36 +03:00
bors
5114f8a29b Auto merge of #36276 - jseyfried:fix_unused, r=nrc
resolve: Fix unused import false positive with `item_like_imports`

Fixes #36249.
r? @nrc
2016-09-06 01:44:13 -07:00
Jorge Aparicio
8df4a768a7 rustbuild: per target musl-root
config.toml now accepts a target.$TARGET.musl-root key that lets you
override the "build" musl-root value, which is set via the --musl-root
flag or via the build.musl-root key.

With this change, it's now possible to compile std for several musl
targets at once. Here's are the sample commands to do such thing:

```
$ configure \
    --enable-rustbuild \
    --target=x86_64-unknown-linux-musl,arm-unknown-linux-musleabi \
    --musl-root=/musl/x86_64-unknown-linux-musl/

$ edit config.toml && tail config.toml
[target.arm-unknown-linux-musleabi]
musl-root = "/x-tools/arm-unknown-linux-musleabi/arm-unknown-linux-musleabi/sysroot/usr"

$ make
```
2016-09-06 01:04:41 -05:00
bors
1d04201565 Auto merge of #36078 - ollie27:rustdoc_search_assocconst, r=alexcrichton
rustdoc: Fix associated consts in search results

Associated consts can appear in none trait impls so need to be treated
like methods when generating the search index.

Fixes #36031
2016-09-05 22:32:36 -07:00
Jeffrey Seyfried
ff3a644951 Add struct AmbiguityError. 2016-09-06 03:52:36 +00:00
Jeffrey Seyfried
888a968139 Add field used: Cell<bool> to variant NameBindingKind::Import. 2016-09-06 03:43:46 +00:00
Jeffrey Seyfried
07f8cb28dc Add regression test. 2016-09-06 03:43:21 +00:00
Jeffrey Seyfried
32674b3f1a Avoid false positive unused import warnings. 2016-09-06 03:43:20 +00:00
Andy Russell
288e7caf19 show self suggestion when items are in the block 2016-09-05 23:08:21 -04:00
Andy Russell
41ee2e9124 resolve: Suggest use self when import resolves
Improves errors messages by replacing "Maybe a missing `extern crate`" messages
with "Did you mean `self::...`" when the `self` import would succeed.
2016-09-05 21:48:02 -04:00
Nick Cameron
92a1848d77 save-analysis: some refinement to the value string for variables 2016-09-06 13:07:59 +12:00
bors
e1d0de82cc Auto merge of #36274 - Manishearth:rollup, r=Manishearth
Rollup of 6 pull requests

- Successful merges: #35845, #35983, #36065, #36102, #36242, #36245
- Failed merges:
2016-09-05 17:55:45 -07:00
bors
cbe4de78e2 Auto merge of #35845 - frewsxcv:result-into-iter, r=GuillaumeGomez
Indicate where `core::result::IntoIter` is created.

None
2016-09-05 14:41:16 -07:00
bors
38824d1061 Auto merge of #36281 - pnkfelix:fix-issue-36036, r=eddyb
Fix issue #36036.

Fix #36036.

We were treating an associated type as unsized even when the concrete instantiation was actually sized. Fix is to normalize before checking if it is sized.
2016-09-05 11:28:36 -07:00
Piotr Jawniak
915bbdac58 rustdoc: Filter more incorrect methods inherited through Deref
Old code filtered out only static methods. This code also excludes
&mut self methods if there is no DerefMut implementation
2016-09-05 20:24:55 +02:00
Cobrand
e8c5dc4806 Updated E0527 to new error format
* Closes #36113
2016-09-05 19:28:52 +02:00