7486 Commits

Author SHA1 Message Date
Niko Matsakis
4a1f556999 Create a struct to represent early-bound regions 2015-04-17 10:05:32 -04:00
Manish Goregaokar
a1bb0a182c Rollup merge of #24475 - arielb1:i24363-hacky-hack, r=pnkfelix
Fix #24363
2015-04-17 19:01:28 +05:30
Manish Goregaokar
373463615a Rollup merge of #24430 - laumann:trace-macros-flag, r=pnkfelix
This is the second attempt at turning the trace_macros macro into a compiler flag.

See #22619
2015-04-17 18:32:25 +05:30
Michael Sproul
6d2b6d5a19 Enforce 80 char lines in extended errors. 2015-04-17 21:35:24 +10:00
Michael Sproul
c54f43a5d1 Update/add messages for E0{267,268,296,303}. 2015-04-17 21:35:24 +10:00
Florian Hartwig
a4be1ec140 Fix broken links in the docs 2015-04-16 23:50:16 -04:00
Philip Munksgaard
35a4100af0 Add Debug to MethodCallee
This fixes #24497
2015-04-16 22:23:37 -04:00
Chris Wong
0e4a77bbfe rustc: Add long diagnostics for E0306 and E0307 2015-04-16 22:23:36 -04:00
Chris Wong
77e8ddfaf3 rustc: Add long diagnostics for E0170 2015-04-16 22:23:36 -04:00
Chris Wong
aaf92f04d1 rustc: Add long diagnostics for E0161 2015-04-16 22:23:36 -04:00
Chris Wong
c08facfcfd rustc: Add long diagnostics for E0158 2015-04-16 22:23:36 -04:00
Chris Wong
521ae488db rustc: Add long diagnostics for E0152 2015-04-16 22:23:36 -04:00
bors
288809c8f3 Auto merge of #23682 - tamird:DRY-is-empty, r=alexcrichton
r? @alexcrichton
2015-04-16 03:22:21 +00:00
bors
abf0548b5c Auto merge of #24481 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #24425, #24435, #24438, #24440, #24449, #24457, #24460, #24465, #24467, #24468, #24471, #24476, #24480
- Failed merges:
2015-04-15 23:09:02 +00:00
Steve Klabnik
b5378f452e Rollup merge of #24449 - richo:typo, r=alexcrichton
Spotted a typo, opened a tiny PR.
2015-04-15 17:26:07 -04:00
bors
07f807d01f Auto merge of #24330 - pnkfelix:issue-24267, r=nikomatsakis
Extend rustc::middle::dataflow to allow filtering kills from flow-exits.

Fix borrowck analysis so that it will not treat a break that pops through an assignment
```rust
x = { ... break; ... }
```
as a kill of the "moved-out" bit for `x`.

Fix #24267.

[breaking-change], but really, its only breaking code that was already buggy.
2015-04-15 21:05:16 +00:00
Ariel Ben-Yehuda
6a95d90b86 make Repr of TraitRef more useful 2015-04-15 22:36:06 +03:00
Felix S. Klock II
1702098e6f Dataflow changes and associated borrowck fix.
Revise rustc::middle::dataflow: one must select kill-kind when calling
add_kill. The current kill-kinds are (1.) kills associated with
ends-of-scopes and (2.) kills associated with the actual action of the
expression/pattern.

Then, use this to fix borrowck analysis so that it will not treat a
break that pops through an assignment `x = { ... break; ... }` as a
kill of the "moved-out" bit for `x`.

Fix #24267.

(incorporated review feedback.)
2015-04-15 18:16:40 +02:00
Richo Healey
cf43761de4 rustc: fix a typo in letter to rustc 2015-04-15 00:07:25 -07:00
bors
c7734429ea Auto merge of #24431 - ruud-v-a:explain, r=alexcrichton
This resolves part of #24407.
2015-04-15 04:14:50 +00:00
Tamir Duberstein
10f15e72e6 Negative case of len() -> is_empty()
`s/([^\(\s]+\.)len\(\) [(?:!=)>] 0/!$1is_empty()/g`
2015-04-14 20:26:03 -07:00
Tamir Duberstein
29ac04402d Positive case of len() -> is_empty()
`s/(?<!\{ self)(?<=\.)len\(\) == 0/is_empty()/g`
2015-04-14 20:26:03 -07:00
Alex Crichton
30425bfe54 Test fixes and rebase conflicts 2015-04-14 13:50:03 -07:00
Ruud van Asseldonk
33dca5e3ad rustc: Add long diagnostics for E0165 2015-04-14 20:11:04 +02:00
Ruud van Asseldonk
c45eacdbc6 rustc: Add long diagnostics for E0162 2015-04-14 20:00:17 +02:00
Alex Crichton
33733b786f rollup merge of #24399: brson/stab 2015-04-14 10:55:59 -07:00
Alex Crichton
d7ff4f5195 rollup merge of #24391: nrc/visit-vis 2015-04-14 10:55:55 -07:00
Ruud van Asseldonk
48a376da18 rustc: Add long diagnostics for E0302 2015-04-14 19:39:58 +02:00
Ruud van Asseldonk
ab1723b670 rustc: Add long diagnostics for E0301 2015-04-14 19:32:01 +02:00
Ruud van Asseldonk
9c6f4b6d1d rustc: Add long diagnostics for E0297 2015-04-14 19:31:54 +02:00
Thomas Jespersen
d14109ec7e Add "trace-macros" as a compiler flag
Fixes #22619
2015-04-14 15:36:38 +02:00
Nick Cameron
b35a587da1 Reviewer comments 2015-04-14 22:17:08 +12:00
Nick Cameron
4ad4363870 Better explanation of AutoDerefRef 2015-04-14 21:55:42 +12:00
Nick Cameron
73c2e768d6 Rebased 2015-04-14 21:55:42 +12:00
Eduard Burtescu
4e8e64140f eddyb's refactoring of coercions/adjustments 2015-04-14 21:55:42 +12:00
Brian Anderson
942c97bce5 Make use of the stability attributes issue a deprecation warning. #22830 2015-04-13 18:42:48 -07:00
Nick Cameron
01678acf50 Expose visibility for fns in syntax::visit 2015-04-14 09:54:58 +12:00
Sean Bowe
49225b8fbc Delay specific span_bug() call until abort_if_errors()
An actual typeck error is the cause of many failed compilations but an
unrelated bug is being reported instead. It is triggered because a typeck
error is presumably not yet identified during compiler execution, which
would normally bypass an invariant in the presence of other errors. In
this particular situation, we delay the reporting of the bug until
abort_if_errors().

Closes #23827, closes #24356, closes #23041, closes #22897, closes #23966,
closes #24013, and closes #23729
2015-04-13 01:16:51 -06:00
bors
37cb1d455e Auto merge of #24072 - ebfull:explain_closure_type_err, r=pnkfelix
Also fixed bug calling .note() instead of .help()

See #24036
2015-04-12 16:37:29 +00:00
bors
03f563a0e0 Auto merge of #24109 - sanxiyn:diverging-closure, r=pnkfelix
Fix #23896.
2015-04-12 04:33:40 +00:00
Manish Goregaokar
83093a2c98 Rollup merge of #24245 - nikomatsakis:issue-24241-coherence-failure, r=pnkfelix
Don't use skolemized parameters but rather fresh variables in coherence. Skolemized parameters wind up preventing unification. Surprised we had no test for this! Fixes #24241.

r? @pnkfelix
2015-04-11 19:04:22 +05:30
Manish Goregaokar
5bbe386a5c Rollup merge of #24242 - nikomatsakis:escaping-closure-error-message, r=brson
Example showing sample inputs, old message, new message:

https://gist.github.com/nikomatsakis/11126784ac678b7eb6ba

Also adds infrastructure for reporting suggestions \"in situ\" and does some (minor) cleanups to `CodeMap`.

r? @brson
2015-04-11 19:04:03 +05:30
bors
c897ac04e2 Auto merge of #24177 - alexcrichton:rustdoc, r=aturon
This commit series starts out with more official test harness support for rustdoc tests, and then each commit afterwards adds a test (where appropriate). Each commit should also test and finish independently of all others (they're all pretty separable).

I've uploaded a [copy of the documentation](http://people.mozilla.org/~acrichton/doc/std/) generated after all these commits were applied, and a double check on issues being closed would be greatly appreciated! I'll also browse the docs a bit and make sure nothing regressed too horribly.
2015-04-10 16:18:44 +00:00
Niko Matsakis
906a9728ff Add a new span_suggestion infrastructure. This lets you edit a snippet
of text (perhaps obtained by span_snippet) and then splice that edited
form back into the original file in the form of a suggestion.
2015-04-10 06:11:28 -04:00
Niko Matsakis
8578fee5d8 Don't use skolemized parameters but rather fresh variables in
coherence. Skolemized parameters wind up preventing unification.
Surprised we had no test for this! Fixes #24241.
2015-04-09 15:57:04 -04:00
Manish Goregaokar
4e466e730b Rollup merge of #24207 - kmcallister:llvm-plugin, r=brson
r? @brson

I'm using this to integrate rustc with [american-fuzzy-lop](http://lcamtuf.coredump.cx/afl/). Building with afl instrumentation is no different from loading any other plugin library.

I'd like this PR to include a `run-make` test with a custom LLVM pass; however I'm not sure it's worth the trouble of building C++ code and linking LLVM from the test suite (are there existing tests that do this?)
2015-04-10 00:24:43 +05:30
Manish Goregaokar
3b87140299 Rollup merge of #24191 - nikomatsakis:issue-20791, r=pnkfelix
Modify the ExprUseVisitor to walk each part of an AutoRef, and in
particular to treat an AutoUnsize as as kind of \"instantaneous\" borrow
of the value being unsized. This prevents us from feeding uninitialized
data.

This caused a problem for the eager reborrow of comparison traits,
because that wound up introducing a \"double AutoRef\", which was not
being thoroughly checked before but turned out not to type check.
Fortunately, we can just remove that \"eager reborrow\" as it is no longer
needed now that `PartialEq` doesn't force both LHS and RHS to have the
same type (and even if we did have this problem, the better way would be
to lean on introducing a common supertype).

Fixes #20791.

r? @nrc
2015-04-10 00:24:42 +05:30
Keegan McAllister
0cb9379446 Allow plugins to register LLVM passes 2015-04-08 14:01:59 -07:00
bors
30e7e6e8b0 Auto merge of #24195 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #24143, #24149, #24167, #24178
- Failed merges:
2015-04-08 15:59:10 +00:00
Steve Klabnik
ac3cc6c427 Rollup merge of #24143 - michaelsproul:extended-errors, r=pnkfelix
I've taken another look at extended errors - fixing up the printing and adding a few more for match expressions.

With regards to printing, the previous behaviour was to just print the error message string directly, despite it containing indentation which caused it to overflow the standard terminal width of 80 columns (try `rustc --explain E0004`). The first approach I considered was to strip the leading whitespace from each line and lay out the text dynamically, inserting spaces in between. This approach became quite messy when taking multi-paragraph errors into account (and seemed overkill). The approach I settled on removes the indentation in the string itself and begins each message with a newline that is stripped before printing.

I feel like complete extended errors would be nice to have for 1.0.0 and I'm happy to spearhead an effort to get them written. Brian got me onto writing them at an SF meetup and I think it shouldn't be too hard to get the remaining 80 or so written with the help of people who don't really work on compiler innards.
2015-04-08 11:34:11 -04:00