Niko Matsakis
96dfed2b62
Pre-step towards issue #12624 and others: Introduce ExprUseVisitor, remove the
...
moves computation. ExprUseVisitor is a visitor that walks the AST for a
function and calls a delegate to inform it where borrows, copies, and moves
occur.
In this patch, I rewrite the gather_loans visitor to use ExprUseVisitor, but in
future patches, I think we could rewrite regionck, check_loans, and possibly
other passes to use it as well. This would refactor the repeated code between
those places that tries to determine where copies/moves/etc occur.
2014-04-24 19:59:49 -04:00
Nick Cameron
a08198ba6f
Prevent unsized types being stored in variables
...
Closes #13376 .
2014-04-24 11:57:22 +12:00
Eduard Burtescu
57aa0eb0aa
rustc: de-@ middle::ty.
2014-04-22 19:20:12 +03:00
Eduard Burtescu
186ac7116c
rustc: de-@ freevars.
2014-04-22 19:06:52 +03:00
Eduard Burtescu
acc5c971ba
rustc: de-@ ty::AutoAdjustment.
2014-04-22 17:18:21 +03:00
Eduard Burtescu
158d7a19b3
rustc: move the method and vtable maps into ty::ctxt.
2014-04-22 17:18:20 +03:00
Eduard Burtescu
402d946868
rustc: fix fallout from removing ast::Sigil and use ty::TraitStore in ty::ClosureTy.
2014-04-11 18:03:10 +03:00
Eduard Burtescu
7c48e53c1e
syntax: remove obsolete mutability from ExprVec and ExprRepeat.
2014-04-04 13:23:03 -07:00
Corey Richardson
35c98a8378
middle: kind: remove dead code
2014-04-02 11:17:20 -04:00
bors
7e7a5e3d3e
auto merge of #13076 : FlaPer87/rust/remove-freeze, r=alexcrichton
...
This PR removes the `Freeze` kind and the `NoFreeze` marker completely.
Fixes #12577
cc @nikomatsakis r?
2014-03-22 13:01:52 -07:00
Alex Crichton
3fb1ed0e04
rustc: Remove all usage of manual deref()
...
Favor using '*' instead
2014-03-22 08:48:34 -07:00
Alex Crichton
0dbb909bf7
rustc: Fix fallout of removing get()
2014-03-22 08:48:20 -07:00
Flavio Percoco
a1cb2f5d8c
doc: Remove Freeze / NoFreeze from docs
2014-03-22 15:47:34 +01:00
Huon Wilson
e33676b793
Migrate all users of opt_vec to owned_slice, delete opt_vec.
...
syntax::opt_vec is now entirely unused, and so can go.
2014-03-22 09:54:18 +11:00
Alex Crichton
da3625161d
Removing imports of std::vec_ng::Vec
...
It's now in the prelude.
2014-03-20 09:30:14 -07:00
Daniel Micay
14f656d1a7
rename std::vec_ng -> std::vec
...
Closes #12771
2014-03-20 04:25:32 -04:00
Huon Wilson
ddc796096b
rustc: put ty_closure behind some indirection.
...
This reduces the size of sty from 112 to 96; like with the ty_trait
variant, this variant of sty occurs rarely (~1%) so the benefits are
large and the costs small.
2014-03-19 22:20:56 +11:00
Huon Wilson
405b5fc1ee
rustc: put ty_trait behind some indirection.
...
This reduces ty::sty from 160 bytes to just 112, and some measurements
eddyb made suggest that the ty_trait variant occurs very
rarely (e.g. ~1% of all sty instances) hence this will result in a large
memory saving, and the cost of the indirection is unlikely to be an
issue.
2014-03-19 22:19:05 +11:00
Eduard Burtescu
9b1fee898f
De-@ ty::ctxt usage.
2014-03-17 09:53:06 +02:00
Eduard Burtescu
20b4e159ed
Implement automatic overloaded dereference.
...
Closes #7141 .
2014-03-13 14:21:45 +02:00
Eduard Burtescu
cdc18b96d6
Remove Rc's borrow method to avoid conflicts with RefCell's borrow in Rc<RefCell<T>>.
2014-03-13 14:21:45 +02:00
Felix S. Klock II
43c07244b3
librustc: Fix up fallout from the automatic conversion.
2014-03-08 21:41:32 +01:00
Patrick Walton
3b6e9d4a7a
librustc: Automatically change uses of ~[T]
to Vec<T>
in rustc.
2014-03-08 21:24:27 +01:00
Patrick Walton
c1ed4d7d41
librustc: Fix errors arising from the automated ~[T]
conversion
2014-03-01 22:40:53 -08:00
Kang Seonghoon
9083cb24b2
rustc: Explicitly mention type params with missing 'static
bounds
...
Also renames `check_durable` to `check_static` and removes the outdated
comment.
2014-02-27 02:14:46 +09:00
Eduard Burtescu
05e4d944a9
Replace callee_id with information stored in method_map.
2014-02-26 16:06:45 +02:00
Eduard Burtescu
7a588ceff2
Rename a few typeck method-related structures to UpperCamelCase.
2014-02-26 16:01:36 +02:00
Eduard Burtescu
efef078cfa
Replaced method_map_entry with method_origin and cleaned up vtable checking a bit.
2014-02-19 23:26:40 +02:00
Eduard Burtescu
a02b10a062
Refactored ast_map and friends, mainly to have Paths without storing them.
2014-02-14 08:43:29 +02:00
Flavio Percoco
968633b60a
Replace crate
usage with krate
...
This patch replaces all `crate` usage with `krate` before introducing the
new keyword. This ensures that after introducing the keyword, there
won't be any compilation errors.
krate might not be the most expressive substitution for crate but it's a
very close abbreviation for it. `module` was already used in several
places already.
2014-02-13 20:52:07 +01:00
Huon Wilson
f8734df515
rustc: remove use of @[].
2014-02-02 02:59:03 +11:00
Virgile Andreani
b9a026afba
Fix minor doc typos
2014-01-31 21:43:07 -08:00
Nick Desaulniers
ea9db66c50
can borrow mut in proc Fixes #10617
2014-01-27 17:06:11 -08:00
Eduard Burtescu
15ba0c310a
Demote self to an (almost) regular argument and remove the env param.
...
Fixes #10667 and closes #10259 .
2014-01-27 14:31:24 +02:00
Patrick Walton
119c6141f5
librustc: Remove @
pointer patterns from the language
2014-01-13 14:45:21 -08:00
Eduard Burtescu
6b221768cf
libsyntax: Renamed types, traits and enum variants to CamelCase.
2014-01-09 22:25:28 +02:00
Brian Anderson
d323632669
'borrowed pointer' -> 'reference'
2014-01-07 18:49:13 -08:00
Eduard Burtescu
3119d18e55
Disowned the Visitor.
2014-01-06 14:00:46 +02:00
Patrick Walton
82a09b9a04
librustc: Remove @mut
support from the parser
2014-01-03 14:02:01 -08:00
Luqman Aden
1265a03139
librustc: Implement coercion for traits.
2013-12-27 03:26:46 -05:00
Patrick Walton
cc0584731a
librustc: De-@mut
the def map.
...
This is the last `@mut` in `librustc` that does not depend on libsyntax.
2013-12-26 15:54:37 -08:00
Patrick Walton
2ead970b21
librustc: De-@mut
trait_defs
2013-12-26 13:01:22 -08:00
Patrick Walton
386300d4b0
librustc: De-@mut
the node_type_substs
table
2013-12-26 13:01:22 -08:00
Kiet Tran
1755408d1a
Remove dead codes
2013-12-08 02:55:28 -05:00
Eduard Burtescu
a9c4b18b18
Box Block, fn_decl, variant and Ty in the AST, as they were inflating critical enum sizes.
2013-12-01 00:00:39 +02:00
Felix S. Klock II
fffa10c175
Removed some dead code.
...
While tracking down how this function became dead, identified a spot
(@fn cannot happen) where we probably would prefer to ICE rather than
pass silently; so added fail! invocation.
2013-11-29 18:20:27 +01:00
Alex Crichton
ab387a6838
Register new snapshots
2013-11-28 20:27:56 -08:00
Patrick Walton
8ceb374ab7
librustc: Remove non-procedure uses of do
from librustc, librustdoc,
...
and librustpkg.
2013-11-26 08:25:00 -08:00
Patrick Walton
7e3f20133a
librustc: Change most uses of &fn()
to ||
.
2013-11-19 13:22:03 -08:00
Niko Matsakis
195f1d77bd
Rename and modernize region enum names
2013-11-08 19:47:57 -05:00