833 Commits

Author SHA1 Message Date
Felix S. Klock II
5e4867eef1 Use more precise type_needs_drop for deciding about emitting cleanup code.
Fix #22536
2015-02-26 15:12:26 +01:00
Felix S. Klock II
2d0e6caeec Add push_ctxt instrumentation to all functions that might call base::zero_mem.
(Instrumentation work for Issue 22536.)
2015-02-26 15:12:26 +01:00
bors
4db0b32467 Auto merge of #22796 - Manishearth:rollup, r=Manishearth 2015-02-25 20:32:58 +00:00
Manish Goregaokar
9692f3bc94 Rollup merge of #22635 - kmcallister:macros-chapter, r=steveklabnik
r? @steveklabnik
2015-02-25 10:27:03 +05:30
bors
ad04cce61c Auto merge of #22530 - rprichard:master, r=dotdash
Fixes #22525

I wasn't sure if I should reuse `write::get_llvm_opt_level` or not.  It returns an `llvm::CodeGenOptLevel`, which is the Rust binding for `CodeGenOpt::Level`. `lto.rs` is passing an optlevel to LLVM's `PassManagerBuilder`, which takes an unsigned int.  `PassManagerBuilder`'s optlevel uses essentially the same enumeration (i.e. 0-3 with 2 as default), but it's implicit.
2015-02-24 20:57:31 +00:00
Oliver Schneider
0bea550a2a style nitpicks 2015-02-24 14:14:48 +01:00
Eduard Burtescu
72d5f39be7 Fix fallout from rebasing. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
f0efa2d843 Update trans/save's span hacks for fully qualified UFCS paths. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
d31b9ebef5 Implement <T>::method UFCS expression syntax. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
5a6a9ed792 rustc: combine partial_def_map and last_private_map into def_map. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
7a3054f55c rustc_resolve: remove the distinction between DefStaticMethod and DefMethod. 2015-02-24 14:14:17 +02:00
Eduard Burtescu
0f49254b31 rustc: use partially resolved definitions to replace the T::A hack. 2015-02-24 14:14:17 +02:00
Eduard Burtescu
5809f8ae74 rustc_resolve: use the visitor model more, remove redundant repeated lookups. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
ffb8092ccf syntax: use a single Path for Trait::Item in QPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
004df413aa syntax: don't use TraitRef in QPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
a817c69297 syntax: don't store a secondary NodeId for TyPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
27747ac1a7 Revert bogus rename from DefTrait to DefaultImpl. 2015-02-24 14:14:16 +02:00
Manish Goregaokar
89d5d2448d Rollup merge of #22213 - eddyb:ty_open-case-closed, r=nikomatsakis
This type wasn't necessary, as there was no place using it and unsized types not wrapped in it, at the same time.
r? @nikomatsakis
2015-02-24 12:26:01 +05:30
Eduard Burtescu
8659de0334 rustc_trans: use an Lvalue Datum for an unsized lvalue to avoid bogus drops. 2015-02-24 08:40:15 +02:00
Eduard Burtescu
3b0cafbcd7 tests: update expected recursion limit errors for the temporary lack of spans. 2015-02-24 08:40:15 +02:00
Eduard Burtescu
7a8a5172a5 Remove ty_open and treat Unsized lvalues as *Unsized. 2015-02-24 08:40:14 +02:00
Manish Goregaokar
d7df353377 Rollup merge of #22580 - pnkfelix:guard-pat-cfg2, r=pnkfelix
aatch's cfg revisions, namely to match expressions

Revise handling of match expressions so that arms branch to next arm.

Update the graphviz tests accordingly.

Fixes #22073. (Includes regression test for the issue.)
2015-02-24 12:08:35 +05:30
Manish Goregaokar
5676f6084b Rollup merge of #22301 - nikomatsakis:object-safe-sized-methods, r=huonw
RFC 817 is not yet accepted, but I wanted to put this code up so people can see how it works. And to be ready lest it should be accepted.

cc rust-lang/rfcs#817
2015-02-24 12:08:35 +05:30
bors
2890508d97 Auto merge of #21689 - FlaPer87:oibit-send-and-friends, r=nikomatsakis
This is one more step towards completing #13231

This series of commits add support for default trait implementations. The changes in this PR don't break existing code and they are expected to preserve the existing behavior in the compiler as far as built-in bounds checks go.

The PR adds negative implementations of `Send`/`Sync` for some types and it removes the special cases for `Send`/`Sync` during the trait obligations checks. That is, it now fully relies on the traits check rather than lang items.

Once this patch lands and a new snapshot is created, it'll be possible to add default impls for `Send` and `Sync` and remove entirely the use of `BuiltinBound::{BoundSend,BoundSync}` for positive implementations as well.

This PR also removes the restriction on negative implementations. That is, it is now possible to add negative implementations for traits other than `Send`/`Sync`
2015-02-24 02:22:44 +00:00
Niko Matsakis
8f5d225933 Extend object safety so that methods with Sized:Self are exempt. 2015-02-23 15:28:26 -05:00
Manish Goregaokar
3b69d1b941 Rollup merge of #22490 - nagisa:inline-args, r=alexcrichton 2015-02-23 11:43:58 -08:00
Manish Goregaokar
bf7cde449b Rollup merge of #22538 - nagisa:properise-trans-asserts, r=nikomatsakis 2015-02-23 11:43:58 -08:00
Manish Goregaokar
8f921502bd Rollup merge of #22667 - dotdash:retslot_cast.rs, r=huonw
We already do this for the function arguments, but miss it for the
retslot pointer, which can lead to LLVM assertions because the retslot
has the wrong type.

Fixes #22663
2015-02-23 11:43:56 -08:00
Manish Goregaokar
5aee931ca5 Rollup merge of #22691 - nick29581:fix-save-impl, r=huonw
r? @huonw
2015-02-23 23:28:48 +05:30
Manish Goregaokar
90d4aaad3a Rollup merge of #22613 - nick29581:fix-save-alias, r=huonw
r? @huonw
2015-02-23 23:28:47 +05:30
Manish Goregaokar
af81ec2f43 Rollup merge of #22559 - kmcallister:borrowck-readme, r=nikomatsakis
And minor fixes to other docs.

r? @nikomatsakis
2015-02-23 23:28:46 +05:30
bors
f0f7ca27de Auto merge of #21769 - brooksbp:column-line-macro, r=nick29581
Please see discussion in #19284 .
2015-02-23 01:53:38 +00:00
Nick Cameron
04b0a3a0a6 save-analysis: fix impls on primitive types 2015-02-23 12:15:11 +13:00
Nick Cameron
6f9b91d429 save-analysis: handle type defs in struct patterns 2015-02-23 08:16:04 +13:00
Simonas Kazlauskas
9be8ec82ce Properly translate methods with foreign CC
This fixes a general issue of trying to define extern functions inside impl blocks resulting in
ICE.

Fixes #21238
Fixes #20734
Fixes #19047
2015-02-22 16:04:18 +02:00
Simonas Kazlauskas
0c25e6f509 Convert some panics to bug diagnostics in trans 2015-02-22 16:03:21 +02:00
Björn Steinbrink
b593c60c33 Add missing cast for retslots in case of "subtyping" due to trait bounds
We already do this for the function arguments, but miss it for the
retslot pointer, which can lead to LLVM assertions because the retslot
has the wrong type.

Fixes #22663
2015-02-22 12:47:27 +01:00
Simonas Kazlauskas
c9d0967383 Validate inline attribute arguments 2015-02-22 13:44:28 +02:00
James Miller
97c1711894 Distinguish between AST and various Dummy nodes in CFG.
(Factoring of aatch CFG code, Part 1.)
2015-02-22 12:01:58 +01:00
Flavio Percoco
d38aab397e Rename DefTrait to DefaultImpl 2015-02-22 02:14:25 +01:00
Flavio Percoco
a962d47ef8 look for default trait candidates 2015-02-22 02:14:24 +01:00
Brian Brooks
fc9fa1a563 Resolve barriers to changing column!() / line!() return type to u32 in #19284 . Address review comments in #21769 . 2015-02-21 17:26:29 -05:00
Manish Goregaokar
3e794defda Rollup merge of #22592 - nikomatsakis:deprecate-bracket-bracket, r=aturon
r? @aturon
2015-02-22 01:51:03 +05:30
Manish Goregaokar
f308550c16 Rollup merge of #22527 - dotdash:if-loop, r=huonw
In `if loop {} {}`, the `if` is actually unreachable, but we didn't
handle that correctly and when trying to translate the `if` we tried to
branch on the \"return value\" of the loop expression, which is not an
`i1` and therefore triggered an LLVM assertion.
2015-02-22 01:47:28 +05:30
Niko Matsakis
68e5bb3f2c Remove remaining uses of []. This time I tried to use deref coercions where possible. 2015-02-20 14:08:14 -05:00
Björn Steinbrink
07c0faa407 Fix an ICE when translating if loop {} {}
In `if loop {} {}`, the `if` is actually unreachable, but we didn't
handle that correctly and when trying to translate the `if` we tried to
branch on the "return value" of the loop expression, which is not an
`i1` and therefore triggered an LLVM assertion.
2015-02-19 11:46:47 +01:00
Ryan Prichard
dc3bc90d5b Use sess.opts.optimize instead of sess.opts.cg.opt_level for LTO optlevel
Fixes #22525
2015-02-19 02:16:16 -08:00
Keegan McAllister
f051e13238 Fix references to doc.rs throughout the code 2015-02-18 19:54:45 -08:00
Alex Crichton
231eeaa35b rollup merge of #22502: nikomatsakis/deprecate-bracket-bracket
Conflicts:
	src/libcollections/slice.rs
	src/libcollections/str.rs
	src/librustc/middle/lang_items.rs
	src/librustc_back/rpath.rs
	src/librustc_typeck/check/regionck.rs
	src/libstd/ffi/os_str.rs
	src/libsyntax/diagnostic.rs
	src/libsyntax/parse/parser.rs
	src/libsyntax/util/interner.rs
	src/test/run-pass/regions-refcell.rs
2015-02-18 15:48:40 -08:00
Alex Crichton
365bd9a9e3 Round 1 fixes and rebase conflicts 2015-02-18 15:27:42 -08:00