Steven Fackler
c3825c8351
env! syntax extension changes
...
env! aborts compilation of the specified environment variable is not
defined and takes an optional second argument containing a custom
error message. option_env! creates an Option<&'static str> containing
the value of the environment variable.
There are no run-pass tests that check the behavior when the environment
variable is defined since the test framework doesn't support setting
environment variables at compile time as opposed to runtime. However,
both env! and option_env! are used inside of rustc itself, which should
act as a sufficient test.
Close #2248
2013-08-08 10:35:42 -07: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
bors
fbeeeebf47
auto merge of #8264 : thestinger/rust/snapshot, r=Aatch
2013-08-03 23:25:55 -07:00
Daniel Micay
1008945528
remove obsolete foreach
keyword
...
this has been replaced by `for`
2013-08-03 22:48:02 -04:00
bors
b5d77d20ec
auto merge of #8223 : davidhalperin/rust/master, r=Aatch
...
Closes #7907
This is my first pull request so let me know if I've done anything wrong. I tried to pick off a nice easy one.
2013-08-03 11:52:50 -07:00
Daniel Micay
b3ad685f7f
replace all remaining for
with foreach
or do
2013-08-03 03:00:42 -04:00
Patrick Walton
9457ebee55
librustc: Disallow "unsafe" for external functions
2013-08-02 21:57:59 -07: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
David Halperin
fe8ad14c87
Add backticks around trait name in conflicting implementations error message
2013-08-02 17:54:54 -04:00
David Halperin
77adec9c9b
Add trait name to conflicting implementation error message
2013-08-02 17:54:53 -04:00
Daniel Micay
234acad404
replace range
with an external iterator
2013-08-02 00:51:14 -04:00
Huon Wilson
7c21ccc483
rustc: add a lint for for
, suggesting foreach
or do
.
...
This is just to aid the transistion to the new `for` loop, by
pointing at each location where the old one occurs.
2013-08-01 15:07:19 -04:00
blake2-ppc
78cde5b9fb
std: Change Times
trait to use do
instead of for
...
Change the former repetition::
for 5.times { }
to::
do 5.times { }
.times() cannot be broken with `break` or `return` anymore; for those
cases, use a numerical range loop instead.
2013-08-01 16:54:22 +02:00
Daniel Micay
1fc4db2d08
migrate many for
loops to foreach
2013-08-01 05:34:55 -04:00
Daniel Micay
5f59c46e0f
rc: from_{owned,const} -> from_{send,freeze}
2013-08-01 04:39:00 -04:00
Daniel Micay
4bad515854
rm ancient error for lowercase kinds
...
3 of these kinds no longer even exist in the CamelCase form
2013-07-31 20:18:26 -04:00
Brian Anderson
8f835d42d7
std: Remove get_task function. Unused
2013-07-30 17:10:21 -07: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
Kevin Mehall
1493141bfd
Add support for ..base
on static struct initializers.
2013-07-28 22:07:27 -04:00
Steven Stewart-Gallus
d0b7515aed
Change concurrency primitives to standard naming conventions
...
To be more specific:
`UPPERCASETYPE` was changed to `UppercaseType`
`type_new` was changed to `Type::new`
`type_function(value)` was changed to `value.method()`
2013-07-27 22:06:29 -07:00
bors
ed20fcc459
auto merge of #8060 : Blei/rust/fix-obsolete-extern-visibility-span, r=pcwalton
2013-07-27 05:25:34 -07:00
Michael Sullivan
8582fde150
Improve the camel case warning a bit.
2013-07-26 16:42:03 -07:00
Philipp Brüschweiler
2a18c29d67
syntax: fix span for obsolete extern visibility error
2013-07-26 16:02:34 +02:00
bors
0012b5008b
auto merge of #8030 : thestinger/rust/iterator, r=huonw
2013-07-25 13:49:43 -07:00
bors
b1f5b1ba5f
auto merge of #8029 : emillon/rust/issue-6804, r=cmr
...
Hi,
As noted in #6804 , a pattern that contains `NaN` will never match because `NaN != NaN`. This adds a warning for such a case. The first commit handles the basic case and the second one generalizes it to more complex patterns using `walk_pat`.
2013-07-25 10:55:47 -07:00
Etienne Millon
f929a49d9c
NaN patterns: indicate that is_NaN is a method
2013-07-25 16:40:59 +02:00
Kevin Murphy
6f253419ee
Move/delete old tests that change behavior
2013-07-25 00:00:56 -04:00
Daniel Micay
4517e39125
rm default method lint
...
default methods are enabled by default, so there's not much point in
keeping around a lint to report them as being experimental
2013-07-24 18:44:16 -04:00
Etienne Millon
fdd71bece2
Generalize NaN pattern detection using walk_pat
2013-07-24 23:20:57 +02:00
Etienne Millon
5c729c0dca
Check for comparisons to NaN in patterns
...
For every pattern that refers to a static value, evaluate it and emit a warning
if it is a NaN.
Fixes #6804
2013-07-24 23:20:57 +02:00
blake2-ppc
8f86fa3b31
rc: Use ~T for allocation
...
Simplify Rc<T>/RcMut<T> by using ~T when allocating a reference counted
box.
2013-07-24 10:22:55 -04:00
Birunthan Mohanathas
206ae5752e
Change 'print(fmt!(...))' to printf!/printfln! in src/test/
2013-07-24 09:45:20 -04:00
Alex Crichton
5c6069141b
Add a test for #5844 (a closed issue now)
2013-07-22 23:09:21 -07: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
Brian Anderson
a74d92e8ab
syntax: Bless mod.rs. #4116
...
When loading a module the parser will look for either foo.rs or foo/mod.rs and generate
an error when both are found.
2013-07-21 19:32:24 -07:00
Patrick Walton
06594ed96b
librustc: Remove pub extern
and priv extern
from the language.
...
Place `pub` or `priv` on individual items instead.
2013-07-20 17:39:38 -07:00
bors
5c999d4eca
auto merge of #7894 : pcwalton/rust/and-pointers-in-at-boxes, r=brson
...
r? @brson
2013-07-20 10:55:34 -07:00
bors
06fec5243b
auto merge of #7863 : catamorphism/rust/issue-5883, r=catamorphism
2013-07-19 00:25:36 -07:00
Patrick Walton
9089cf2ec9
librustc: Forbid &
pointers (other than &'static
) inside @
boxes.
...
This makes custom borrowing implementations for custom smart pointers
sound.
2013-07-18 17:12:46 -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
Tim Chevalier
2fbd9f0cb2
testsuite: Add compile-fail test for #5883
2013-07-17 15:32:02 -07:00
Patrick Walton
dc4bf173f8
test: Fix tests.
2013-07-17 14:57:55 -07:00
Patrick Walton
2dbb3c3887
test: Fix tests.
2013-07-17 14:57:54 -07:00
Patrick Walton
e20549ff19
librustc: Remove all uses of the Copy
bound.
2013-07-17 14:57:53 -07:00
Patrick Walton
99b33f7219
librustc: Remove all uses of "copy".
2013-07-17 14:57:51 -07:00
Niko Matsakis
782853c658
Issue #7444 - Update neg test and pos test for move by capture
2013-07-17 09:02:52 -04:00
Niko Matsakis
81c576cd5b
Issue #7444 - Borrowck permits moved values to be captured
2013-07-17 07:19:43 -04:00
Huon Wilson
040e470f47
rustc: implement a #[no_implicit_prelude]
attribute.
...
It disables the insertion of `use std::prelude::*;` into the top of
all the modules below the item on which it is placed (including that
item itself).
2013-07-17 15:01:02 +10:00
Huon Wilson
e4f7561bcd
Clean-up tests after debug!/std-macros change.
...
The entire testsuite is converted to using info! rather than debug!
because some depend on the code within the debug! being trans'd.
2013-07-17 03:10:13 +10:00
Alex Crichton
9fd2ac7428
Make TLS keys actually take up space
...
If the TLS key is 0-sized, then the linux linker is apparently smart enough to
put everything at the same pointer. OSX on the other hand, will reserve some
space for all of them. To get around this, the TLS key now actuall consumes
space to ensure that it gets a unique pointer
2013-07-14 10:15:07 -07:00