Commit Graph

16824 Commits

Author SHA1 Message Date
Seo Sanghyeon 156a307f4b LLVM versions 2013-04-10 14:57:49 +09:00
bors 6100bb5cba auto merge of #5804 : alexcrichton/rust/issue-3266, r=graydon
This leaves the default lint modes at `warn`, but now the unused variable and dead assignment warnings are configurable on a per-item basis. As described in #3266, this just involved carrying around a couple ids to pass over to `span_lint`. I personally would prefer to keep the `_` prefix as well.

This closes #3266.
2013-04-09 20:36:56 -07:00
bors 80b6bbd7b5 auto merge of #5789 : brson/rust/drop, r=graydon 2013-04-09 19:33:57 -07:00
bors ec3cfaed8b auto merge of #5807 : klutzy/rust/vim-inner-doc, r=brson
Follow-up of #5760:
Add syntax highlight for `/*! doc */` or `//! doc`.
2013-04-09 18:15:58 -07:00
bors 92e265cdea auto merge of #5802 : nikomatsakis/rust/issue-4183-trait-substs, r=nikomatsakis
Cleanup substitutions and treatment of generics around traits in a number of ways

- In a TraitRef, use the self type consistently to refer to the Self type:
  - trait ref in `impl Trait<A,B,C> for S` has a self type of `S`.
  - trait ref in `A:Trait` has the self type `A`
  - trait ref associated with a trait decl has self type `Self`
  - trait ref associated with a supertype has self type `Self`
  - trait ref in an object type `@Trait` has no self type

- Rewrite `each_bound_traits_and_supertraits` to perform
  substitutions as it goes, and thus yield a series of trait refs
  that are always in the same 'namespace' as the type parameter
  bound given as input.  Before, we left this to the caller, but
  this doesn't work because the caller lacks adequare information
  to perform the type substitutions correctly.

- For provided methods, substitute the generics involved in the provided
  method correctly.

- Introduce TypeParameterDef, which tracks the bounds declared on a type
  parameter and brings them together with the def_id and (in the future)
  other information (maybe even the parameter's name!).

- Introduce Subst trait, which helps to cleanup a lot of the
  repetitive code involved with doing type substitution.

- Introduce Repr trait, which makes debug printouts far more convenient.

Fixes #4183.  Needed for #5656.

r? @catamorphism
2013-04-09 17:12:58 -07:00
bors 5e570ce4b0 auto merge of #5766 : thestinger/rust/cmp, r=brson
It was simpler to just give the variants a value instead of listing out all the cases for (*self, *other) in a match statement or writing spaghetti code. This makes the `cmp` method easier to use with FFI too, since you're a cast away from an idiomatic C comparator function. It would be fine implemented another way though.
2013-04-09 16:09:59 -07:00
Niko Matsakis e8cd29ba5e Apply comments from tjc 2013-04-09 12:33:18 -07:00
klutzy 7a1394d58f vim: syntax highlight for inner doc comment 2013-04-10 04:25:48 +09:00
bors 81ba65da47 auto merge of #5805 : brson/rust/0.7-pre, r=brson 2013-04-09 11:04:01 -07:00
Brian Anderson 23251b2438 Bump version to 0.7-pre 2013-04-09 10:59:32 -07:00
Alex Crichton 3e67085d7a Allow lint modes to be used on unused variables and dead assignments 2013-04-09 13:48:44 -04:00
Niko Matsakis 9963bd2413 Cleanup substitutions and treatment of generics around traits in a number of ways.
- In a TraitRef, use the self type consistently to refer to the Self type:
  - trait ref in `impl Trait<A,B,C> for S` has a self type of `S`.
  - trait ref in `A:Trait` has the self type `A`
  - trait ref associated with a trait decl has self type `Self`
  - trait ref associated with a supertype has self type `Self`
  - trait ref in an object type `@Trait` has no self type

- Rewrite `each_bound_traits_and_supertraits` to perform
  substitutions as it goes, and thus yield a series of trait refs
  that are always in the same 'namespace' as the type parameter
  bound given as input.  Before, we left this to the caller, but
  this doesn't work because the caller lacks adequare information
  to perform the type substitutions correctly.

- For provided methods, substitute the generics involved in the provided
  method correctly.

- Introduce TypeParameterDef, which tracks the bounds declared on a type
  parameter and brings them together with the def_id and (in the future)
  other information (maybe even the parameter's name!).

- Introduce Subst trait, which helps to cleanup a lot of the
  repetitive code involved with doing type substitution.

- Introduce Repr trait, which makes debug printouts far more convenient.

Fixes #4183.  Needed for #5656.
2013-04-09 08:06:10 -07:00
bors 412a07055c auto merge of #5769 : gifnksm/rust/range_step, r=bstrie
`uint::range_step` or `int::range_step` causes overflow or underflow as following.
code:
```rust
fn main() {
    for uint::range_step(3, 0, -2) |n| {
        println(fmt!("%u", n));
    }
}
```
output:
```
3
1
18446744073709551615
18446744073709551613
...
```
This commit fixes this behavior as follows.
```
3
1
```
2013-04-09 07:52:04 -07:00
bors e56a17879a auto merge of #5788 : danluu/rust/rusti_clear, r=bstrie
The old help text reads "clear the screen", but :clear seems intended to do something completely different. I'm not sure what the intent is. If it's really supposed to clear the screen, not only does it not clear the screen, it does something completely different.

```
rusti> fn foo() { println("called foo!") }
()
rusti> foo();
called foo!
()
rusti> :clear
rusti> foo();
<anon>:34:0: 34:3 error: unresolved name: `foo`.
<anon>:34 foo();
```

Per the contributor guidelines, here's the reason there's no testcase: it's a comment string.
2013-04-09 06:10:01 -07:00
bors c6a4ba9791 auto merge of #5800 : vivekgalatage/rust/master, r=bstrie
Currently submodules are using the git protocol. Git protocol is blocked
by certain corporate networks which makes it difficult to sync the submodules.

Replacing the git protocol with https in order to sync the submodules.
2013-04-09 05:18:59 -07:00
Vivek Galatage f9f8a3e72c Support https protocol for git submodules for rust
Currently submodules are using the git protocol. Git protocol is blocked
by certain corporate networks which makes it difficult to sync the submodules.

Replacing the git protocol with https in order to sync the submodules.
2013-04-09 15:45:22 +05:30
Dan Luu eaa8bbbb2e Fix comment to match style of surrounding text 2013-04-08 23:58:29 -04:00
bors 30dbbe17c9 auto merge of #5787 : alexcrichton/rust/less-mut-fields, r=catamorphism
This removes some of the easier instances of mutable fields where the explicit self can just become `&mut self` along with removing some unsafe blocks which aren't necessary any more now that purity is gone.

Most of #4568 is done, except for [one case](https://github.com/alexcrichton/rust/blob/less-mut-fields/src/libcore/vec.rs#L1754) where it looks like it has to do with it being a `const` vector. Removing the unsafe block yields:

```
/Users/alex/code/rust2/src/libcore/vec.rs:1755:12: 1755:16 error: illegal borrow unless pure: creating immutable alias to const vec content
/Users/alex/code/rust2/src/libcore/vec.rs:1755         for self.each |e| {
                                                           ^~~~
/Users/alex/code/rust2/src/libcore/vec.rs:1757:8: 1757:9 note: impure due to access to impure function
/Users/alex/code/rust2/src/libcore/vec.rs:1757         }
                                                       ^
error: aborting due to previous error
```

I also didn't delve too much into removing mutable fields with `Cell` or `transmute` and friends.
2013-04-08 18:36:57 -07:00
bors 22f65e9852 auto merge of #5786 : JensNockert/rust/u16-debuginfo-typo, r=catamorphism
A small typo in debuginfo.rs related to the u16 type.
2013-04-08 17:34:01 -07:00
bors 786ae0114b auto merge of #5782 : zofrex/rust/doc-1-tuples, r=thestinger
As per [the 0.6 release notes](https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes#06-april-2013) single-element tuples are legal. I spotted a couple of places in the documentation that said otherwise, and propose these changes to them.
2013-04-08 16:22:03 -07:00
Brian Anderson 2e907a3ac2 core: Remove all but one drop block in favor of `finally` 2013-04-08 16:16:32 -07:00
Dan Luu 37f17d7204 Update help text to match behavior 2013-04-08 18:25:15 -04:00
Jens Nockert e06b9827ef Fix typo in u16 debug info 2013-04-08 23:59:00 +02:00
Alex Crichton 255193cc1a Removing no longer needed unsafe blocks 2013-04-08 17:50:25 -04:00
Alex Crichton 3136fba5ae Removing some mutable fields in libstd 2013-04-08 17:50:14 -04:00
bors 1968130885 auto merge of #5763 : thestinger/rust/clone, r=nikomatsakis
Performing a deep copy isn't ever desired for a persistent data
structure, and it requires a more complex implementation to do
correctly. A deep copy needs to check for cycles to avoid an infinite
loop.
2013-04-08 14:12:55 -07:00
Daniel Micay 68d17bca4b clone: managed boxes need to clone by shallow copy
Performing a deep copy isn't ever desired for a persistent data
structure, and it requires a more complex implementation to do
correctly. A deep copy needs to check for cycles to avoid an infinite
loop.
2013-04-08 16:19:12 -04:00
bors 5a0f628501 auto merge of #5777 : lucab/rust/lucab/doc/misc, r=thestinger
A non-code PR to put the AUTHORS.txt file in the released tarball and to update the copyright terms in the rustc manpage as per post-dual-licensing.
2013-04-08 13:09:55 -07:00
bors 913ca088fc auto merge of #5776 : dbaupp/rust/syntax-parse-large-number, r=thestinger
Addresses #5544 and #5770, as well as a comment left in the documentation of `from_str_bytes_common`, so that there is now an option to ignore underscores.
2013-04-08 12:06:58 -07:00
bors c92936395c auto merge of #5775 : pavpanchekha/rust/patch-1, r=thestinger
Change wrong field name in "Trait Inheritance" section.
2013-04-08 11:10:00 -07:00
bors 2255587f23 auto merge of #5760 : klutzy/rust/vim, r=thestinger
1. disable nested comment which is not supported now
2. add syntax highlight for rustCommentDoc e.g. `/** doc */` or `/// doc`.
2013-04-08 09:34:01 -07:00
Luca Bruno a5c931cc61 Update license terms in manpage 2013-04-08 10:19:16 +02:00
Luca Bruno 2190efb3ca Put AUTHORS.txt file in the release tarball 2013-04-08 10:15:12 +02:00
Huon Wilson 0c2ceb1a2e libsyntax: fail lexing with an error message on an int literal larger than 2^64.
Stops an ICE.

Closes #5544.
2013-04-08 16:40:40 +10:00
Huon Wilson 41c6f67109 libcore: from_str_common: provide option to ignore underscores.
Implement the possible improvement listed in the comment on
from_str_bytes_common.
2013-04-08 16:35:39 +10:00
Huon Wilson 49cdf36d2b libcore: from_str_common: correctly signal failure on repeating base 2^n numbers.
A number like 0b1_1111_1111 == 511 would be parsed to Some(255u8) rather than None
by from_str_common, since 255 * 2 + 1 == 255 (mod 256) so the overflow wasn't detected.

Only applied to conversions where the radix was a power of 2, and where all digits
repeated.

Closes #5770.
2013-04-08 16:35:39 +10:00
Pavel Panchekha c6d6782906 Fixed typo
Change wrong field name in "Trait Inheritance" section.
2013-04-07 23:19:31 -03:00
zofrex ac9e694d59 Update manual for single-element tuple types 2013-04-07 22:08:40 +01:00
zofrex d1e2d295f8 Update manual for single-element tuples 2013-04-07 22:08:34 +01:00
zofrex 621d45b341 Update tutorial: 1-tuples now exist 2013-04-07 22:08:23 +01:00
gifnksm 89676d6a59 libcore: fix overflow/underflow in range_step 2013-04-07 19:55:58 +09:00
klutzy fc26911b49 vim: fix comment highlighting bug
Previous commit had a bug that a line which ends with "//" or "/*"
is not correctly highlighted.
2013-04-07 14:30:50 +09:00
bors 5641777318 auto merge of #5756 : gifnksm/rust/bigint-impl, r=thestinger
Implements TotalEq, TotalOrd, FromStrRadix, ToStrRadix for BigUint, BigInt.
2013-04-06 22:12:51 -07:00
Daniel Micay a3f40184bd cmp: add Ord+TotalOrd impls for Ordering itself 2013-04-07 01:02:51 -04:00
Daniel Micay c47d80304e cmp: derive Clone for Ordering 2013-04-07 00:33:10 -04:00
gifnksm eebf29ed37 Impl cmp/num traits for BigUint, BigInt
TotalEq, TotalOrd, FromStrRadix, ToStrRadix.
2013-04-07 13:28:17 +09:00
klutzy 7c2a8c4ac2 vim: add rustCommentDoc 2013-04-07 04:32:05 +09:00
klutzy 38fe5aa070 vim: disable nested comment
Since comment nesting does not work from 0.4.
2013-04-07 04:25:54 +09:00
bors 44d4d6de76 auto merge of #5757 : dbaupp/rust/rustc-fixed-vector-pprint, r=thestinger
Currently error messages say ``mismatched types: expected `uint` but found `[uint * 10]` (expected uint but found vector)`` rather than `[uint, .. 10]`.
2013-04-06 02:12:45 -07:00
bors 77eadc0653 auto merge of #5755 : catamorphism/rust/rustllvm-cmdline, r=brson
r? @brson In my WIP on rustpkg, I was calling driver code that calls
LLVMRustWriteOutputFile more than once. This was making LLVM
unhappy, since that function has code that initializes the
command-line options for LLVM, and I guess you can't do that more
than once. So, check if they've already been initialized.
2013-04-06 01:09:48 -07:00