Patrick Walton
ccb18f47e2
librustc: De-@mut
the used_mut_nodes
table in the type context
2013-12-26 15:54:33 -08:00
Patrick Walton
f7393d8658
librustc: De-@mut
the method map
2013-12-26 15:54:32 -08:00
Patrick Walton
3b1a7b5ca9
librustc: Remove the unused reported
table from the loan checking pass
2013-12-26 15:54:32 -08:00
Patrick Walton
bc1ea7887c
librustc: De-@mut
the write guard map
2013-12-26 15:54:31 -08:00
Patrick Walton
dd745b388d
librustc: De-@mut
the capture map
2013-12-26 13:01:28 -08:00
Patrick Walton
7cf6abc84a
librustc: De-@mut
the adjustments table in the type context
2013-12-26 13:01:26 -08:00
Edward Z. Yang
4584acdf4c
s/Second borrow/Previous borrow/ in error messages.
...
When a borrow occurs twice illegally, Rust will label the other borrow
as the "second borrow". This is quite confusing, as the "second borrow"
usually happened before the flagged borrow (e.g. as far as dataflow
is concerned, the first borrow is OK, the second borrow is illegal.)
This patch renames "second borrow" to "previous borrow", to make the
spatial relationship between the two borrows clearer.
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
2013-12-17 21:10:57 +08:00
Seo Sanghyeon
5499b45323
Remove fk_anon
2013-12-12 23:01:47 +09:00
Erik Price
5731ca3078
Make 'self lifetime illegal.
...
Also remove all instances of 'self within the codebase.
This fixes #10889 .
2013-12-11 10:54:06 -08:00
Alex Crichton
9522a08cf0
Check the privacy of implemented traits
...
This bug showed up because the visitor only visited the path of the implemented
trait via walk_path (with no corresponding visit_path function). I have modified
the visitor to use visit_path (which is now overridable), and the privacy
visitor overrides this function and now properly checks for the privacy of all
paths.
Closes #10857
2013-12-09 22:53:58 -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
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
Seo Sanghyeon
9028330f39
Take &Pat in visit_pat
2013-11-26 03:22:21 +09:00
Patrick Walton
7e3f20133a
librustc: Change most uses of &fn()
to ||
.
2013-11-19 13:22:03 -08:00
Patrick Walton
7e77bf1769
librustc: Implement the proc
type as sugar for ~once fn
and proc
...
notation for closures, and disable the feature gate for `once fn` if
used with the `~` sigil.
2013-10-29 10:34:17 -07:00
Alex Crichton
daf5f5a4d1
Drop the '2' suffix from logging macros
...
Who doesn't like a massive renaming?
2013-10-22 08:09:56 -07:00
Eduard Burtescu
7ab0b0cd41
Handle inline asm outputs as write-only in liveness, borrowck and trans.
2013-10-18 08:02:56 +03:00
Alex Crichton
4f67dcb24a
Migrate users of 'loop' to 'continue'
...
Closes #9467
2013-10-01 15:53:13 -07:00
Alex Crichton
1b80558be3
rustc: Remove usage of fmt!
2013-09-30 23:21:19 -07:00
Felix S. Klock II
7eed184dbb
visit::Visitor refactor: replace (&mut BorrowckVisitor, @BorrowckCtxt) with &mut BorrowckCtxt.
2013-09-24 01:56:25 +02:00
Felix S. Klock II
959d9d60e1
check_loans.rs Visitor refactoring ( #7081 ): unify CheckLoan{Ctxt,Visitor}.
2013-09-10 11:25:09 +02:00
Marvin Löbel
7419085337
Modernized a few more types in syntax::ast
2013-09-03 14:45:06 +02:00
Marvin Löbel
539f37925c
Modernized a few type names in rustc and syntax
2013-09-01 14:43:26 +02:00
Patrick Walton
aac9d6eee9
librustc: Fix merge fallout
2013-08-27 19:09:27 -07:00
Patrick Walton
4f32a2d854
librustc: Fix merge fallout.
2013-08-27 18:47:57 -07:00
Patrick Walton
a20af8b276
librustc: Convert check loans to use the new visitor
2013-08-27 18:47:57 -07:00
Patrick Walton
5c3504799d
librustc: Remove &const
and *const
from the language.
...
They are still present as part of the borrow check.
2013-08-27 18:46:51 -07:00
bors
58d6eb5048
auto merge of #8797 : nikomatsakis/rust/issue-8625-assign-to-andmut-in-borrowed-loc-2, r=pcwalton
...
Fixes for #8625 to prevent assigning to `&mut` in borrowed or aliasable locations. The old code was insufficient in that it failed to catch bizarre cases like `& &mut &mut`.
r? @pnkfelix
2013-08-27 17:05:46 -07:00
Niko Matsakis
8c09865b66
Remove remnants of implicit self
2013-08-27 16:49:06 -04:00
Niko Matsakis
35a4177550
Extend aliasability check to uncover & &mut &mut
and the like
2013-08-27 15:45:19 -04:00
Niko Matsakis
6b23d20452
Prohibit assignment to &mut
pointers that are found in frozen or borrowed locations.
...
Fixes #8625 .
2013-08-21 12:02:21 -04:00
Felix S. Klock II
f93864c8f4
Port check_loans.rs from oldvisit to <V:Visitor> trait API.
2013-08-15 04:10:21 +02:00
Niko Matsakis
66b8ad5867
borrowck: Integrate AutoBorrowObj into borrowck / mem_categorization
...
Also cleanup the treatment of mutability in mem_categorization, which still
included the concept of interior mutability. At some point, we should
refactor the types to exclude the possibility of interior mutability rather
than just ignoring the mutability value in those cases.
2013-08-11 14:01:23 -04:00
blake2-ppc
8523f6d643
rustc: Fix for-range loops that can use iterators
...
Transform range loops that can be regular iterator loops.
2013-08-07 22:39:57 -04:00
Marvin Löbel
0ac7a219f0
Updated std::Option, std::Either and std::Result
...
- Made naming schemes consistent between Option, Result and Either
- Changed Options Add implementation to work like the maybe monad (return None if any of the inputs is None)
- Removed duplicate Option::get and renamed all related functions to use the term `unwrap` instead
2013-08-05 22:42:21 +02:00
Daniel Micay
1008945528
remove obsolete foreach
keyword
...
this has been replaced by `for`
2013-08-03 22:48:02 -04:00
Daniel Micay
b3ad685f7f
replace all remaining for
with foreach
or do
2013-08-03 03:00:42 -04:00
Patrick Walton
887c656970
librustc: Introduce a new visitor type based on traits and port syntax to it.
...
This is preparation for removing `@fn`.
This does *not* use default methods yet, because I don't know
whether they work. If they do, a forthcoming PR will use them.
This also changes the precedence of `as`.
2013-08-02 21:57:58 -07:00
Daniel Micay
234acad404
replace range
with an external iterator
2013-08-02 00:51:14 -04:00
Daniel Micay
1fc4db2d08
migrate many for
loops to foreach
2013-08-01 05:34:55 -04:00
Michael Woerister
8a329770b6
New naming convention for ast::{node_id, local_crate, crate_node_id, blk_check_mode, ty_field, ty_method}
2013-07-29 16:16:48 +02:00
Birunthan Mohanathas
5afb3d20aa
Disallow non-comma-delimited arguments to fmt! and bytes!
...
Closes #4982 .
2013-07-24 09:45:20 -04:00
Michael Woerister
4bd1424622
Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.
...
`crate => Crate`
`local => Local`
`blk => Block`
`crate_num => CrateNum`
`crate_cfg => CrateConfig`
Also, Crate and Local are not wrapped in spanned<T> anymore.
2013-07-22 15:35:28 +02:00
Patrick Walton
93fa7a4b09
librustc: Remove &
inside @
from borrowck/check_loans.
2013-07-18 12:21:08 -07:00
bors
cee5c4ad11
auto merge of #7849 : nikomatsakis/rust/issue-7444-capture-moved-value, r=bblum
...
This code looks like it was just wrong. r? @bblum
2013-07-18 01:37:44 -07:00
Niko Matsakis
81c576cd5b
Issue #7444 - Borrowck permits moved values to be captured
2013-07-17 07:19:43 -04:00
Michael Woerister
0cc70743d2
Made ast::blk not use spanned<T> anymore.
2013-07-17 08:21:46 +02:00
Niko Matsakis
729b07f83c
Modify borrow checker to visit irrefutable patterns that appear in
...
let and function arguments; modify type checker to store type
information for all patterns and handles some missing cases.
2013-07-08 13:55:10 -04:00