Jakub Bukaj
cca84e9e21
Remove ty_bot from the type system
...
We now instead use a fresh variable for expressions that diverge.
2014-10-28 17:54:16 +01:00
bors
58dc0a05ab
auto merge of #18386 : nikomatsakis/rust/issue-18208, r=pnkfelix
...
Avoid O(n^2) performance by reconsidering the full set of obligations only when we are about to report an error (#18208 ). I found it is still important to consider the full set in order to make tests like `let x: Vec<_> = obligations.iter().collect()` work.
I think we lack the infrastructure to write a regression test for this, but when I did manual testing I found a massive reduction in type-checking time for extreme examples like those found in #18208 vs stage0.
f? @dotdash
2014-10-28 12:26:50 +00:00
Niko Matsakis
1da73ff126
Avoid O(n^2) performance by reconsidering the full set of obligations only when we are about to report an error ( #18208 ). I found it is still important to consider the full set in order to make tests like let x: Vec<_> = obligations.iter().collect()
work.
2014-10-28 08:18:21 -04:00
bors
9a778bc550
auto merge of #18254 : areski/rust/pr-fix-vec-doc-example, r=alexcrichton
...
- shrink_to_fit example is now more clear by asserting the capacity value
- annotation [0, mid) changed for [0, mid]
2014-10-28 10:11:51 +00:00
bors
faed6489da
auto merge of #18127 : alexcrichton/rust/deriving-arc, r=aturon
...
This adds impls of Eq/Ord/PartialEq/PartialOrd/Show/Default to Arc<T>, and it
also removes the `Send + Sync` bound on the `Clone` impl of Arc to make it more
deriving-friendly. The `Send + Sync` requirement is still enforce on
construction, of course!
2014-10-28 08:01:52 +00:00
bors
3f37e2efac
auto merge of #18192 : jmesmon/rust/platform-generic, r=alexcrichton
...
The goal here is to make it easier to add new platform definitions,
especially when the additions are programmatic (ie: in build scripts).
2014-10-28 05:46:53 +00:00
Alex Crichton
35ad00d2ec
alloc: Make deriving more friendly with Arc
...
This adds impls of Eq/Ord/PartialEq/PartialOrd/Show/Default to Arc<T>, and it
also removes the `Send + Sync` bound on the `Clone` impl of Arc to make it more
deriving-friendly. The `Send + Sync` requirement is still enforce on
construction, of course!
2014-10-27 22:45:44 -07:00
bors
823f805453
auto merge of #18144 : bkoropoff/rust/mighty-monomorphizin-unboxed-closures, r=nikomatsakis
...
This allows unboxed closures that reference free type/region parameters to be monomorphized correctly in trans.
It was necessary to make `ty_unboxed_closure` carry around a `Substs` to accomplish this. Plumbing this through typeck revealed several areas where type/region parameters in unboxed closure types are possibly not being handled correctly. Since my goal was just to fix trans, I decided to leave FIXME comments on areas that still need attention and seek feedback on the best way to clean them up, possibly as a follow-up PR.
Closes #16791
2014-10-28 03:26:52 +00:00
Brian Koropoff
e46af8caec
Add regression test for issue #16791
2014-10-27 18:51:43 -07:00
Brian Koropoff
f0cc3a9365
Fix monomorphization of unboxed closures
...
This adds a `Substs` field to `ty_unboxed_closure` and plumbs basic
handling of it throughout the compiler. trans now correctly
monomorphizes captured free variables and llvm function defs. This
fixes uses of unboxed closures which reference a free type or region
parameter from their environment in either their signature or free
variables. Closes #16791
2014-10-27 18:51:27 -07:00
bors
bd7138dd69
auto merge of #18368 : alexcrichton/rust/rollup, r=alexcrichton
2014-10-27 23:02:55 +00:00
Alex Crichton
4dc06dceb2
rollup merge of #18259 : alexcrichton/snapshots
2014-10-27 15:12:48 -07:00
Alex Crichton
a33d7617c5
Test fixes and rebase conflicts from rollup
2014-10-27 15:12:48 -07:00
Alex Crichton
40811f84ef
rollup merge of #18334 : csherratt/arc-encodable
2014-10-27 15:12:48 -07:00
Alex Crichton
6e9d5a6d9d
rollup merge of #18366 : aochagavia/ascii
2014-10-27 15:12:48 -07:00
Alex Crichton
c5cc27f9a2
rollup merge of #18364 : cakebaker/missing_a
2014-10-27 15:12:48 -07:00
Alex Crichton
20b9897c58
rollup merge of #18362 : kevinmehall/pprint-struct-pat-shorthand
2014-10-27 15:12:47 -07:00
Alex Crichton
c381752b0e
rollup merge of #18356 : jakub-/const-pattern-suptype
2014-10-27 15:12:47 -07:00
Alex Crichton
a1d719dad4
rollup merge of #18347 : cakebaker/ffi
2014-10-27 15:12:47 -07:00
Alex Crichton
15547e1d72
rollup merge of #18346 : aochagavia/closure-fields
2014-10-27 15:12:47 -07:00
Alex Crichton
cfeff3e1c7
rollup merge of #18344 : aochagavia/show-arc
2014-10-27 15:12:47 -07:00
Alex Crichton
1cc938a69a
rollup merge of #18337 : bkoropoff/unboxed-imm-upvar-fixes
2014-10-27 15:12:45 -07:00
Alex Crichton
175d6a7435
rollup merge of #18332 : jbcrail/fix-comments
2014-10-27 15:12:30 -07:00
Alex Crichton
287df9e0eb
rollup merge of #18329 : sfackler/memwriter-clear
2014-10-27 15:12:30 -07:00
Alex Crichton
ed7f4a8da4
rollup merge of #18327 : vadimcn/17982
2014-10-27 15:12:30 -07:00
Alex Crichton
650214b170
rollup merge of #18326 : sfackler/cfg-final
2014-10-27 15:12:30 -07:00
Alex Crichton
f1118cc084
rollup merge of #18324 : jakub-/eneedstest
2014-10-27 15:12:30 -07:00
Alex Crichton
dac3234bba
rollup merge of #18321 : chastell/guide_refresh_testing_output
2014-10-27 15:12:29 -07:00
Alex Crichton
54647bd317
rollup merge of #18320 : chastell/guide_simplify_formatting
2014-10-27 15:12:29 -07:00
Alex Crichton
9dc9eccf3d
rollup merge of #18316 : thestinger/raw
2014-10-27 15:12:29 -07:00
Alex Crichton
abfc2f3b8d
rollup merge of #18315 : arielb1/constexpr-addr
2014-10-27 15:12:29 -07:00
Alex Crichton
0c736c7b1d
rollup merge of #18309 : cakebaker/fix_off_by_one
2014-10-27 15:12:29 -07:00
areski
a446b68380
Add @thestinger comment explaining that shrink_to_fit might drop down as close as possible but not to the minimun
2014-10-27 22:32:53 +01:00
Alex Crichton
ee32c04d60
rollup merge of #18303 : cgaebel/make-vec-match-slice
2014-10-27 12:53:02 -07:00
Alex Crichton
dea37d73ca
rollup merge of #18266 : nick29581/vtable2.rs
2014-10-27 12:53:02 -07:00
Alex Crichton
dc5a18c6e0
rollup merge of #18265 : jakub-/mailmap
2014-10-27 12:53:02 -07:00
Alex Crichton
ecdb19cc98
rollup merge of #18257 : globin/master
2014-10-27 12:53:02 -07:00
Alex Crichton
2f8ee08f66
rollup merge of #18256 : SimonSapin/view_item_to_string
2014-10-27 12:53:02 -07:00
Alex Crichton
6f65ad1a44
rollup merge of #18251 : steveklabnik/build_module_guide
2014-10-27 12:53:02 -07:00
Alex Crichton
e9537735c1
rollup merge of #18250 : dotdash/fix_aliasing
2014-10-27 12:53:01 -07:00
Alex Crichton
a6883d4054
rollup merge of #18244 : areski/pr-fix-string-doc
2014-10-27 12:53:01 -07:00
Alex Crichton
bb70ce6804
rollup merge of #18239 : msiemens/fix-ice-rename-failed
2014-10-27 12:53:01 -07:00
Alex Crichton
0c756de6c5
rollup merge of #18235 : nikomatsakis/issue-18209
2014-10-27 12:53:01 -07:00
Alex Crichton
da57aa57d4
rollup merge of #18231 : cakebaker/fix_greater_than_forty_two_closure
2014-10-27 12:53:01 -07:00
Alex Crichton
b3c676ed86
rollup merge of #18229 : bjz/ttdelim
2014-10-27 12:53:01 -07:00
Alex Crichton
83e91fb489
rollup merge of #18221 : jkleint/guide-boxes
2014-10-27 12:53:00 -07:00
bors
e05c3b7799
auto merge of #17978 : arielb1/rust/remaining-garbage, r=nikomatsakis
...
it seems to be some kind of leftover GC-related detritus
2014-10-27 16:57:46 +00:00
Ariel Ben-Yehuda
19faaf1a9e
Remove cat_discr
...
it seems to be some kind of GC-related mess
2014-10-27 19:06:50 +02:00
Adolfo Ochagavía
2ce77b33b0
Add test for issue 18343
2014-10-27 16:28:24 +01:00
Adolfo Ochagavía
9dab88712f
Show a note when closure field is called as method
...
Closes https://github.com/rust-lang/rust/issues/18343
2014-10-27 16:15:50 +01:00