Niko Matsakis
15164cc6a6
Issue the correct deref count for the implicit deref that occurs
...
as part of an autoslice operation (#6272 ).
Fixes #6272 .
2013-05-09 15:58:02 -04:00
bors
7675856253
auto merge of #6354 : Aatch/rust/uninit-intrinsic, r=graydon
...
Adds an `uninit` intrinsic.
It's just an empty function, so llvm optimizes it down to nothing.
I changed all of the `init` intrinsic usages to `uninit` where it seemed appropriate to.
2013-05-09 12:37:00 -07:00
bors
7a4c6e587d
auto merge of #6325 : sammykim/rust/lint-name, r=graydon
...
Fix #3525 .
2013-05-09 08:54:38 -07:00
Niko Matsakis
dc2ca9d883
Refactor representation of bounds to separate out BuiltinBounds into
...
its own type. Use a bitset to represent built-in bounds. There
are several places in the language where only builtin bounds (aka kinds)
will be accepted, e.g. on closures, destructor type parameters perhaps,
and on trait types.
2013-05-09 11:39:06 -04:00
Björn Steinbrink
1393c3a3f4
Use a specialized string interner to reduce the need for owned strings
...
&str can be turned into @~str on demand, using to_owned(), so for
strings, we can create a specialized interner that accepts &str for
intern() and find() but stores and returns @~str.
2013-05-09 14:40:19 +02:00
bors
ca95e7f94e
auto merge of #6345 : seanmoon/rust/fix-typos, r=sanxiyn
...
Hi there,
Really enjoying Rust. Noticed a few typos so I searched around for a few more--here's some fixes.
Ran `make check` and got `summary of 24 test runs: 4868 passed; 0 failed; 330 ignored`.
Thanks!
Sean
2013-05-09 03:51:32 -07:00
James Miller
050c744c23
Add uninit intrinsic
2013-05-09 22:23:38 +12:00
Youngmin Yoo
c02064d153
librustc: rename vec::each(var) to var.each
2013-05-09 14:20:04 +09:00
Patrick Walton
3affc6ed40
librustc: Fix merge fallout.
2013-05-08 17:04:02 -07:00
Patrick Walton
16a0125e41
libcore: Fix tests.
2013-05-08 17:04:01 -07:00
Patrick Walton
99daec602f
librustc: Fix merge fallout.
2013-05-08 17:04:00 -07:00
Patrick Walton
db4573a776
librustc: Remove mutable fields from the language.
...
They're still parsed though, to get through bootstrapping.
2013-05-08 17:04:00 -07:00
Patrick Walton
4dc1c2976d
libcore: Remove mutable fields from hash
2013-05-08 17:03:58 -07:00
bors
5a65f51d66
auto merge of #6214 : sanxiyn/rust/simd-2, r=graydon
...
At the moment this only includes type checking and there is no code generation support yet. I wanted to get the design reviewed first.
From discussion with @graydon at #5841 , re-implemented as `#[simd]` attribute on structs.
Progressing towards #3499 .
2013-05-08 14:09:38 -07:00
bors
65ded84d20
auto merge of #6119 : brson/rust/main, r=brson
...
r? @ILyoan
This pulls all the logic for discovering the crate entry point into a new pass (out of resolve and typeck), then changes it so that main is only looked for at the crate level (`#[main]` can still be used anywhere).
I don't understand the special android logic here and worry that I may have broken it.
2013-05-08 12:24:39 -07:00
Brian Anderson
3970d02ec5
rustc: Fix the logic for finding the Android main function
...
I don't understand what this logic is doing
2013-05-08 12:03:15 -07:00
Sean Moon
bd4ee7c7d2
Fix typos
2013-05-09 02:34:47 +09:00
bors
b6f9295654
auto merge of #6317 : brson/rust/durable, r=z0w0
...
#6312
2013-05-08 05:03:38 -07:00
bors
1d7a136145
auto merge of #6309 : nikomatsakis/rust/issue-3678-type-of-extern-fns, r=nikomatsakis
...
Lift restriction on calling extern C functions, and propagate the ABI as part of the type of an extern fn. cc #3678
2013-05-08 02:42:37 -07:00
Sangeun Kim
dc48a558b6
Show lint names
2013-05-08 17:23:48 +09:00
bors
86500fbb13
auto merge of #6297 : sammykim/rust/static-lint-table, r=luqmana
2013-05-07 23:18:39 -07:00
Sangeun Kim
356ebe8792
extranous thing is removed
2013-05-08 10:42:47 +09:00
Brian Anderson
3df7ed15b7
Remove Durable from the language
2013-05-07 17:50:42 -07:00
Brian Anderson
d8ef723d49
rustc: Replace Durable with 'static
2013-05-07 15:30:57 -07:00
Seo Sanghyeon
0ed4495ac4
Generate LLVM SIMD vector types
2013-05-08 02:09:19 +09:00
Seo Sanghyeon
784e8369ca
Remove trailing whitespace
2013-05-08 01:01:31 +09:00
Niko Matsakis
11f7cb26c2
When autoborrowing a fn in trans, adjust the type of the datum to be &fn
.
...
Fixes #6141 .
2013-05-07 11:41:27 -04:00
Seo Sanghyeon
f3217a5c9c
Check SIMD vector types
2013-05-07 23:35:33 +09:00
Seo Sanghyeon
8e0c6fa5b6
Port IRBuilder::CreateVectorSplat
2013-05-07 23:29:19 +09:00
Niko Matsakis
387d6c597a
Lift restriction on calling extern C functions, and propagate
...
the ABI as part of the type of an extern fn. cc #3678
2013-05-07 05:28:39 -04:00
bors
bdb52e58b4
auto merge of #6251 : thestinger/rust/non_owned, r=pcwalton
...
Also fixed the docstring on `TC_ONCE_CLOSURE` (was accidentally the same as `TC_MUTABLE`) and shifted the `TC_EMPTY_ENUM` bit left by one since whatever previously used that bit has been removed.
2013-05-07 01:27:38 -07:00
Sangeun Kim
7455f986a8
Make lint_table static
2013-05-07 16:28:58 +09:00
Niko Matsakis
39a119074a
appease the tidy gods with respect to a FIXME
2013-05-06 20:27:59 -04:00
Niko Matsakis
0ef4e860da
Replace NOTE with FIXME
2013-05-06 14:02:28 -04:00
Niko Matsakis
2ea52a38e5
refinement to technique used to not run regionck
2013-05-06 09:00:37 -04:00
Niko Matsakis
e235f6ca53
remove some unused mut decls and vars
2013-05-06 05:18:23 -04:00
Niko Matsakis
4dc62dfcf3
do not run regionck if there have been type errors
2013-05-06 05:17:36 -04:00
Niko Matsakis
7b36e34c89
Fix two more write guard failures
2013-05-05 21:05:37 -04:00
Daniel Micay
bc52224d47
factor out the has_attr checks
2013-05-05 15:50:10 -04:00
Daniel Micay
58c0df2af6
add #[non_owned] and #[mutable] attributes
2013-05-05 15:36:26 -04:00
Niko Matsakis
4300d4d2fa
Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freeze
...
Conflicts:
src/libcore/core.rc
src/libcore/hashmap.rs
src/libcore/num/f32.rs
src/libcore/num/f64.rs
src/libcore/num/float.rs
src/libcore/num/int-template.rs
src/libcore/num/num.rs
src/libcore/num/strconv.rs
src/libcore/num/uint-template.rs
src/libcore/ops.rs
src/libcore/os.rs
src/libcore/prelude.rs
src/libcore/rt/mod.rs
src/libcore/unstable/lang.rs
src/librustc/driver/session.rs
src/librustc/middle/astencode.rs
src/librustc/middle/borrowck/check_loans.rs
src/librustc/middle/borrowck/gather_loans.rs
src/librustc/middle/borrowck/loan.rs
src/librustc/middle/borrowck/preserve.rs
src/librustc/middle/liveness.rs
src/librustc/middle/mem_categorization.rs
src/librustc/middle/region.rs
src/librustc/middle/trans/base.rs
src/librustc/middle/trans/inline.rs
src/librustc/middle/trans/reachable.rs
src/librustc/middle/typeck/check/_match.rs
src/librustc/middle/typeck/check/regionck.rs
src/librustc/util/ppaux.rs
src/libstd/arena.rs
src/libstd/ebml.rs
src/libstd/json.rs
src/libstd/serialize.rs
src/libstd/std.rc
src/libsyntax/ast_map.rs
src/libsyntax/parse/parser.rs
src/test/compile-fail/borrowck-uniq-via-box.rs
src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs
src/test/run-pass/borrowck-nested-calls.rs
2013-05-05 15:11:04 -04:00
Niko Matsakis
6cb273ed4e
Address all FIXMEs from #5562
2013-05-05 13:50:10 -04:00
Niko Matsakis
0b0b8018a6
add warning for #6248 and remove instances of it
2013-05-05 12:17:59 -04:00
Brian Anderson
8081e8debf
Register snapshots
2013-05-04 15:43:51 -07:00
Niko Matsakis
989d008124
separate out write_guard code into its own module
2013-05-04 14:29:32 -04:00
Niko Matsakis
ccf2f7b979
make asm_comments something that you opt in to
2013-05-04 14:29:08 -04:00
bors
1f65e4a1d5
auto merge of #6230 : thestinger/rust/whitespace, r=catamorphism
...
I just had `git apply` fix most of them and then did a quick skim over the diff to fix a few cases where it did the wrong thing (mostly replacing tabs with 4 spaces, when someone's editor had them at 8 spaces).
2013-05-04 00:48:37 -07:00
bors
a47e4cb22f
auto merge of #6229 : catamorphism/rust/warning-police, r=catamorphism
2013-05-03 23:48:36 -07:00
Niko Matsakis
0ff8200671
factor code for write guards into its own module; add neglected resolve_stage0
2013-05-03 22:07:33 -04:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
Tim Chevalier
2df8799f76
rustc: Warning police
2013-05-03 16:56:34 -07:00
Niko Matsakis
be08c3e514
rustc: add rooting, write-guards to slices etc
2013-05-03 16:27:16 -04:00
Tim Chevalier
32b3d3e9eb
tidy
2013-05-03 13:03:53 -07:00
Tim Chevalier
13df2ea69c
rustc: Handle struct patterns where the expected type is an enum
...
Previously, rustc would ICE if you matched on an enum-typed thing
with a structure pattern. Error out correctly.
2013-05-03 13:03:53 -07:00
Niko Matsakis
e7d96934c1
Correct mismatch between the way that pattern ids and expression ids map to types (pattern ids map to the input type, expression ids map to the output type)
2013-05-03 12:29:24 -04:00
bors
79aeb529d5
auto merge of #6046 : brson/rust/io, r=graydon
...
r? @pcwalton
Sorry this is so big, and sorry the first commit is just titled 'wip'.
Some interesting bits
* [LocalServices](f9069baa70
) - This is the set of runtime capabilities that *all* Rust code should expect access to, including the local heap, GC, logging, unwinding.
* [impl Reader, etc. for Option](5fbb0949a5
) - Constructors like `File::open` return Option<FileStream>. This lets you write I/O code without ever unwrapping an option.
This series adds a lot of [documentation](https://github.com/brson/rust/blob/io/src/libcore/rt/io/mod.rs#L11 ) to `core::rt::io`.
2013-05-03 09:09:40 -07:00
Niko Matsakis
34024353e8
Change borrow debugging so it is disabled by -O
2013-05-03 05:42:00 -04:00
bors
213f7b24cc
auto merge of #6207 : sanxiyn/rust/tc-big, r=thestinger
2013-05-03 01:36:37 -07:00
bors
984180c600
auto merge of #6204 : pcwalton/rust/uninhabited-enum-cast, r=catamorphism
...
r? @catamorphism
2013-05-03 00:12:37 -07:00
bors
87c46b548a
auto merge of #6206 : sanxiyn/rust/mach-sty, r=thestinger
2013-05-02 21:42:36 -07:00
Brian Anderson
6c478c7de8
Merge remote-tracking branch 'brson/io' into incoming
...
Conflicts:
mk/rt.mk
src/libcore/run.rs
2013-05-02 20:51:56 -07:00
bors
b37a685958
auto merge of #6201 : pcwalton/rust/inhtwama-serializer, r=graydon
...
This PR removes mutable fields from the serializer and makes the encoder and decoder use INHTWAMA properly (i.e. `&mut self`).
r? @graydon
2013-05-02 20:39:36 -07:00
Brian Anderson
db6a62c537
rustc: Drop the visitor object from the visitor glue
...
Recent demoding makes the visitor glue leak. It hasn't shown up in tests
because the box annihilator deletes the leaked boxes. This affects the
new scheduler though which does not yet have a box annihilator.
I don't think there's any great way to test this besides setting up
a task that doesn't run the box annihilator and I don't know that that's
a capability we want tasks to have.
2013-05-02 18:42:07 -07:00
Patrick Walton
c0f587de34
librustc: Make uninhabited enums not castable to int
2013-05-02 18:41:57 -07:00
Niko Matsakis
9bded76260
move @mut into scope_info
2013-05-02 21:15:36 -04:00
Patrick Walton
dc5df61bc1
librustc: Update the serializer to work properly with INHTWAMA, removing mutable fields in the process
2013-05-02 17:00:51 -07:00
bors
31599fe347
auto merge of #6172 : Sodel-the-Vociferous/rust/rm_trt_obj_magic_nums, r=catamorphism,graydon
...
I don't know how one would write a separate test for this sort of thing. Building the compiler, and `make check` worked, which should mean I didn't screw anything.
2013-05-02 16:03:37 -07:00
Niko Matsakis
4999d44d5b
trans: fix borrow violation
2013-05-02 16:37:28 -04:00
bors
cdf604f434
auto merge of #6193 : youknowone/rust/static-string, r=sanxiyn
2013-05-02 12:36:36 -07:00
Niko Matsakis
88ec89d3fe
fix numerous dynamic borrow failures
2013-05-02 14:32:37 -04:00
bors
b6988843e8
auto merge of #6125 : luqmana/rust/newtype-drop, r=pcwalton
...
#6090
r? @brson
2013-05-02 10:21:40 -07:00
Jeong YunWon
35b91e2f73
Use static strings
2013-05-03 01:41:09 +09:00
bors
1c64f7a0f7
auto merge of #6178 : erickt/rust/remove-drop, r=graydon
...
This patch removes ty::LegacyDtor, which is no longer used.
2013-05-02 08:18:38 -07:00
Seo Sanghyeon
6883814a84
Remove codes related to modes
2013-05-02 21:56:20 +09:00
bors
b42ea7f9ef
auto merge of #6174 : sanxiyn/rust/static-string, r=brson
2013-05-01 22:06:37 -07:00
Erick Tryzelaar
c1de90cdb2
rustc: remove ty::LegacyDtor
2013-05-01 20:30:05 -07:00
Brendan Zabarauskas
e596128bd8
Remove 'Local Variable' comments
2013-05-02 13:22:04 +10:00
Niko Matsakis
fbaf8399c8
rustc: more fix for trans_lvalue rooted twice
2013-05-01 21:50:09 -04:00
Niko Matsakis
6210de9529
lang: fix code for maintaining borrow list
2013-05-01 21:47:09 -04:00
Seo Sanghyeon
4294aed01b
Use static strings
2013-05-02 10:36:30 +09:00
Niko Matsakis
ef6b24d135
rustc: fix the fact that trans_lvalue rooted twice
2013-05-01 20:22:08 -04:00
Niko Matsakis
14bf5c4fe7
rustc: adjust total number of lang items
2013-05-01 20:19:28 -04:00
Daniel Ralston
c64471ab86
Add trait object field types to back/abi.rs, and use them
...
I've added trt_field_vtable, trt_field_box, and trt_field_tydesc, and
inserted them in place of the "magic numbers" used to access trait
object fields through GEPi().
2013-05-01 15:25:17 -07:00
Niko Matsakis
38f93f2121
wip---work on making rooting work properly
2013-05-01 13:48:00 -04:00
bors
55fbc47af1
auto merge of #6148 : erickt/rust/remove-drop, r=pcwalton
...
The drop block has been deprecated for quite some time. This patch series removes support for parsing it and all the related machinery that made drop work.
As a side feature of all this, I also added the ability to annote fields in structs. This allows comments to be properly associated with an individual field. However, I didn't update `rustdoc` to integrate these comment blocks into the documentation it generates.
2013-05-01 09:18:59 -07:00
Erick Tryzelaar
c2e1f47955
rustc: remove the rest of drop
...
Removes:
ast::struct_def::dtor
syntax::ast::ii_dtor
syntax::visit::fk_dtor
syntax::ast_map::node_dtor
syntax:struct_dtor
2013-05-01 07:49:41 -07:00
Niko Matsakis
4af2d90af5
add an option to debug borrows (RUST_DEBUG_BORROW) so you can
...
find out where the offending borrow occurred. This ... still needs
some work.
2013-05-01 10:30:54 -04:00
Niko Matsakis
84861101ec
rustc: print out filename/line-number when a borrow fails
2013-05-01 09:14:47 -04:00
Niko Matsakis
5ab33a2975
correct incorrect handling of overloaded operators, exposing various other bits of rot
2013-05-01 08:49:48 -04:00
Brendan Zabarauskas
ee26c7c433
Revert rename of Div to Quot
2013-05-01 15:40:05 +10:00
bors
7a857673ff
auto merge of #6103 : catamorphism/rust/nonfatal-errors, r=catamorphism
...
r? @nikomatsakis typeck::check::_match wasn't suppressing derived errors properly.
Fixed it. (This will fix #5100 )
2013-04-30 17:39:36 -07:00
Niko Matsakis
f236b850c0
remove some unused mut decls
2013-04-30 16:35:01 -04:00
Niko Matsakis
dc21daeeb8
borrowck: fix critical bug prevent us from ever using write guards :)
2013-04-30 16:34:22 -04:00
Jed Davis
8408012ca4
The null case of a nullable-poiner enum might not be nullary.
...
Cases like `Either<@int,()>` have a null case with at most one value but
a nonzero number of fields; if we misreport this, then bad things can
happen inside of, for example, pattern matching.
Closes #6117 .
2013-04-30 11:36:22 -07:00
Seo Sanghyeon
97109aa51b
Remove mach_sty
2013-05-01 03:27:14 +09:00
Niko Matsakis
418f991118
allover: numerous unused muts etc
2013-04-30 14:10:21 -04:00
Niko Matsakis
70b9ad1748
rustc: work around issue with default-method-simple, fix some rebase
...
errors
2013-04-30 14:09:14 -04:00
Niko Matsakis
545d51c160
rustc: remove modes
2013-04-30 14:08:18 -04:00
Niko Matsakis
7a0c1ea560
correct used_mut annotations for args, inherited case
2013-04-30 14:07:52 -04:00
Niko Matsakis
aa48a170d5
dataflow: fix flow of information through pattern variants
2013-04-30 14:07:26 -04:00
Niko Matsakis
a896440ca1
new borrow checker (mass squash)
2013-04-30 06:59:32 -04:00
Niko Matsakis
202b8dcdc4
adapt to snapshot
2013-04-30 06:43:02 -04:00
bors
c081ffbd1e
auto merge of #6121 : luqmana/rust/newtype-cc, r=graydon
...
#6086
2013-04-30 02:21:37 -07:00
Tim Chevalier
849f8142a2
rustc / test: Fix error message
2013-04-29 20:46:54 -07:00
Luqman Aden
c2b8f98917
librustc: Fix drop finalizer not running for newtype structs.
2013-04-29 19:48:49 -07:00
Luqman Aden
b50aa827a0
librustc: Fix pattern matching on cross crate newtype structs.
2013-04-29 17:35:36 -07:00
Brian Anderson
98f5c6d5b6
rustc: Only accept main functions at the crate level. #4433
2013-04-29 17:10:50 -07:00
Brian Anderson
be8dc615c5
rustc: Move code for discovering the crate entry point into its own pass
...
It doesn't have anything to do with resolve and the logic will likely get
more involved in the future, after #4433
2013-04-29 14:56:05 -07:00
Tim Chevalier
d8024e2c3b
rustc: Change At to Managed and Uniq to Owned
2013-04-29 14:38:39 -07:00
Patrick Walton
a9da34bf6e
librustc: Fix merge fallout.
2013-04-29 14:30:57 -07:00
Patrick Walton
37abf4bad0
librustc: Forbid type implementations on typedefs.
2013-04-29 14:30:57 -07:00
Patrick Walton
876483dcf4
test: Fix tests.
2013-04-29 14:30:56 -07:00
Patrick Walton
f30f54e9d0
librustc: Remove the concept of modes from the compiler.
...
This commit does not remove `ty::arg`, although that should be
possible to do now.
2013-04-29 14:30:55 -07:00
Patrick Walton
a12a3db5b4
librustc: Make &fn
by-copy by default and remove the mode from frame_address
.
2013-04-29 14:30:55 -07:00
Patrick Walton
17723d18de
test: Remove #[legacy_modes] from the test suite.
2013-04-29 14:30:55 -07:00
Patrick Walton
0780b2830f
librustc: Remove the legacy mode in the type visitor intrinsic.
2013-04-29 14:30:53 -07:00
Patrick Walton
c6a9e28842
librustc: Rename reinterpret_cast
to transmute_copy
and remove the intrinsic
2013-04-29 14:30:53 -07:00
Patrick Walton
b6277f8140
librustc: Implement reinterpret_cast
in terms of transmute
.
2013-04-29 14:30:53 -07:00
Patrick Walton
b0522a497c
librustc: Remove ptr::addr_of
.
2013-04-29 14:30:53 -07:00
Daniel Micay
46f91a0fa9
make way for a new iter module
2013-04-28 22:31:39 -04:00
Tim Chevalier
edc11a9f09
rustc: Suppress derived pattern-match-checking errors
...
typeck::check::_match wasn't suppressing derived errors properly.
Fixed it.
2013-04-28 18:47:55 -07:00
Daniel Micay
f792baba42
only use #[no_core] in libcore
2013-04-27 21:34:24 -04:00
bors
9f118865a2
auto merge of #6072 : cmr/rust/better_import_error, r=graydon
2013-04-27 14:24:36 -07:00
Corey Richardson
8dd9dc995e
add comment
2013-04-26 05:28:43 -04:00
Corey Richardson
b085b51357
Offer a hint on some unresolved imports
...
I didn't know how to use "use" initially, and an error message like this would
have solved quite a bit of frustration. I think this properly handles cases
where it's not appropriate but I'm not sure.
2013-04-26 04:59:28 -04:00
Corey Richardson
d53e686f4f
Rename vec::mod2 to vec::mod_zip
2013-04-25 01:38:44 -04:00
Brendan Zabarauskas
ab8068c9f2
Improve divide-by-zero error messages
2013-04-24 14:20:00 +10:00
Alex Crichton
0c2ab662b7
Fixing some various warnings about unused imports
2013-04-23 19:59:14 -04:00
Alex Crichton
4c08a8d6c3
Removing more unnecessary unsafe blocks throughout
2013-04-23 19:59:13 -04:00
Alex Crichton
c089a17854
Improve the unused unsafe block warning to include unsafe blocks in unsafe functions
2013-04-23 19:40:34 -04:00
bors
88ccee78a8
auto merge of #6022 : catamorphism/rust/warning-police, r=catamorphism
2013-04-23 10:36:50 -07:00
Tim Chevalier
7169907e9f
rustc: Remove dead code
2013-04-23 10:17:41 -07:00
Tim Chevalier
aac73b24ae
rustc: Comments only: change XXX to FIXME
2013-04-23 10:17:41 -07:00
Tim Chevalier
52d3f5558e
core, rustc: Warning police
2013-04-23 10:17:38 -07:00
bors
8cadcc47ee
auto merge of #6027 : alexcrichton/rust/more-backticks, r=catamorphism
...
It seems that the general convention of error messages is to have keywords in backticks, so it's probably a good idea to keep doing that.
2013-04-23 09:48:49 -07:00
bors
0290caa885
auto merge of #6026 : isanbard/rust/ca73fbf72615575f106ee18160580711aca89d85, r=catamorphism
...
When the number of parameters is 1, then 'parameter' should remain singular.
Otherwise pluralize it.
2013-04-23 02:33:49 -07:00
Alex Crichton
8884c6abdb
Use backticks for the unsafe keyword in error messages
2013-04-23 02:06:47 -04:00
Bill Wendling
ca73fbf726
Use correct grammar for error message.
...
When the number of parameters is 1, then 'parameter' should remain singular.
Otherwise pluralize it.
2013-04-22 22:08:09 -07:00
bors
b8441ca8a6
auto merge of #6007 : pcwalton/rust/use-mod, r=brson
...
r? @brson
2013-04-22 18:36:50 -07:00
bors
aba93c6b60
auto merge of #5966 : alexcrichton/rust/issue-3083, r=graydon
...
Closes #3083 .
This takes a similar approach to #5797 where a set is present on the `tcx` of used mutable definitions. Everything is by default warned about, and analyses must explicitly add mutable definitions to this set so they're not warned about.
Most of this was pretty straightforward, although there was one caveat that I ran into when implementing it. Apparently when the old modes are used (or maybe `legacy_modes`, I'm not sure) some different code paths are taken to cause spurious warnings to be issued which shouldn't be issued. I'm not really sure how modes even worked, so I was having a lot of trouble tracking this down. I figured that because they're a legacy thing that I'd just de-mode the compiler so that the warnings wouldn't be a problem anymore (or at least for the compiler).
Other than that, the entire compiler compiles without warnings of unused mutable variables. To prevent bad warnings, #5965 should be landed (which in turn is waiting on #5963 ) before landing this. I figured I'd stick it out for review anyway though.
2013-04-22 15:36:51 -07:00
Patrick Walton
25129ee81c
librustc: Remove use mod
from the language
2013-04-22 12:32:59 -07:00
Jed Davis
22f751f0f3
Use nullable pointers to represent enums like Option<~T>.
...
See comments in adt.rs for details.
2013-04-22 08:50:27 -07:00
Jed Davis
70452e5231
Consider nullability for equivalence of monomorphized fns.
2013-04-22 08:49:56 -07:00
Brendan Zabarauskas
01eb5e8ad3
Rename Div operator trait to Quot and Modulo operator trait to Rem
2013-04-22 01:58:53 +10:00
Alex Crichton
c389d0b0dd
rustc: remove unused 'mut' variables
2013-04-20 21:03:24 -04:00
Alex Crichton
d1985c9dd0
Implement a lint mode to deal with unused 'mut' variables
2013-04-20 21:02:38 -04:00
bors
0e017ab4e0
auto merge of #5979 : Thiez/rust/no_reinterpret_cast, r=catamorphism
...
As the name suggests this replaces many instances of cast::reinterpret_cast by cast::transmute. It's essentially the boring part of fixing #5163 , the remaining reinterpret_casts should be more tricky to remove (unless I missed a boring case).
r? @catamorphism
2013-04-20 14:24:51 -07:00
bors
f0afe23dce
auto merge of #5978 : alexcrichton/rust/issue-5954, r=catamorphism
...
Closes #5954
2013-04-20 13:33:51 -07:00
Matthijs Hofstra
51a68eb9b1
Replaced many instances of reinterpret_cast with transmute
2013-04-20 22:05:50 +02:00
Alex Crichton
3c2a44b60f
Don't warn about unsafe functions which don't need to be unsafe
2013-04-20 15:52:05 -04:00