Commit Graph

39810 Commits

Author SHA1 Message Date
Björn Steinbrink
549be5f867 Emit proper function argument attributes for closure environments 2015-03-01 12:30:11 +01:00
Felix S. Klock II
180ef47af2 Add regression tests for issue 22443.
Fix #22443.
2015-03-01 11:16:11 +01:00
Felix S. Klock II
5ef6182102 Add check for unbounded due to non-regular types in dropck.
Count recursion across phantom data separately from all recursion,
and treat `Box<T>` just as if it were carrying `PhantomData<T>`.

(Regression tests are in followup commit.)

The practical effect of this is just to increment the `xref_depth`
counter, the same way that `Vec` and other types carrying
`PhantomData` do.
2015-03-01 11:15:32 +01:00
bors
0eb0ba38d0 Auto merge of #22087 - GuillaumeGomez:int-pow, r=alexcrichton
Fixes issue #22016
2015-03-01 08:59:29 +00:00
Tshepang Lekhonkhobe
55ce45e7b5 remove some compiler warnings 2015-03-01 09:35:57 +02:00
Alex Crichton
94d71f8836 std: Implement stdio for std::io
This is an implementation of RFC 899 and adds stdio functionality to the new
`std::io` module. Details of the API can be found on the RFC, but from a high
level:

* `io::{stdin, stdout, stderr}` constructors are now available. There are also
  `*_raw` variants for unbuffered and unlocked access.
* All handles are globally shared (excluding raw variants).
* The stderr handle is no longer buffered.
* All handles can be explicitly locked (excluding the raw variants).

The `print!` and `println!` machinery has not yet been hooked up to these
streams just yet. The `std::fmt::output` module has also not yet been
implemented as part of this commit.
2015-02-28 23:13:02 -08:00
bors
0905c8a5ec Auto merge of #22909 - Manishearth:rollup, r=Manishearth
r? @Manishearth
2015-03-01 06:32:54 +00:00
Alan Cutter
9b873faef5 Fix missed doc grammar rule rename from vec_elems to array_elems 2015-03-01 15:37:40 +11:00
Manish Goregaokar
60f7732ccd Rollup merge of #22910 - dotdash:time_llvm_passes, r=cmr
The timing code break when using multiple codegen units, but that
shouldn't stop us from using it with a single codegen unit.
2015-03-01 09:50:30 +05:30
Manish Goregaokar
4e34daf2c4 Rollup merge of #22908 - mdinger:fix_link, r=Gankro
The markdown listing the link in [StrExt::width](http://doc.rust-lang.org/std/str/trait.StrExt.html#tymethod.width) isn't being parsed properly. I'm expecting it's because the `[ ]` is across 2 lines so this changes that. This is untested though.
2015-03-01 09:50:18 +05:30
Manish Goregaokar
4495bdb52c Add import of usize (fixup #22901) 2015-03-01 09:49:50 +05:30
Manish Goregaokar
d9fb9765a1 Rollup merge of #22907 - dotdash:static_assert_bool, r=eddyb
static_assert is documented as working on static with type `bool`, but
we currently accept it on any const static and crash when the const has
an non-integral type.

This is a breaking-change for anyone who used static_assert on types
likes i32, which happened to work but seems like an unintended
consequence of the missing error checking.

[breaking-change]

Fixes #22056
2015-03-01 09:49:48 +05:30
Manish Goregaokar
9dc9fcc767 Rollup merge of #22904 - dotdash:drop_old_clang, r=alexcrichton
Fixes #20467
2015-03-01 09:49:47 +05:30
Manish Goregaokar
337a0a981e Rollup merge of #22903 - semarie:openbsd-stack, r=alexcrichton
some commits in OpenBSD OS have corrected a problem of stack position.
Now, we can adjust more accurately the page guard in rust.

@dhuseby I am not sure that bitrig have already integrated these changes (the `$OpenBSD$` header in sys/kern/kern_exec.c is too old). But when they do, you may want this patch too.
2015-03-01 09:49:46 +05:30
Manish Goregaokar
87391ed52a Rollup merge of #22901 - thepowersgang:patch-1, r=eddyb
A misplaced uint->u32 instead of usize in fmt::Pointer. Added a basic test.
2015-03-01 09:49:43 +05:30
Manish Goregaokar
3c1f61ce63 Rollup merge of #22898 - edwardw:one-less-unsafe-impl, r=huonw
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-03-01 09:49:42 +05:30
Manish Goregaokar
4ac53cc6ce Rollup merge of #22896 - Ms2ger:InlineAttr, r=huonw 2015-03-01 09:49:39 +05:30
bors
341a9ca1e3 Auto merge of #22898 - edwardw:one-less-unsafe-impl, r=huonw
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-03-01 04:06:03 +00:00
Ryan Prichard
c1c02d9b0b Cleanup in the fmt::num module
* Make num::UpperHex private.  I was unable to determine why this struct
   is public.  The num module itself is not public, and the UpperHex struct
   is not referenced anywhere in the core::fmt module.  (Only the UpperHex
   trait is reference.)  num::LowerHex is not public.

 * Remove the suffix parameters from the macros that generate integral
   display traits.

   The code to print the Debug::fmt suffixes was removed when Show was
   renamed to Debug.  It was an intentional change.  From RFC 0565:

    * Focus on the *runtime* aspects of a type; repeating information such
      as suffixes for integer literals is not generally useful since that
      data is readily available from the type definition.

 * Because Show was renamed to Debug, rename show! to debug!.
2015-02-28 19:30:06 -08:00
GuillaumeGomez
c74d49c804 Fix errors, remove unused files 2015-03-01 02:42:17 +01:00
GuillaumeGomez
9e28caef31 Remove int/uint 2015-03-01 02:42:17 +01:00
bors
2b27dfd30a Auto merge of #22896 - Ms2ger:InlineAttr, r=huonw 2015-03-01 01:39:07 +00:00
Guillaume Gomez
1c4fb909ff Make Int::pow() take exp as u32 instead usize 2015-03-01 01:58:55 +01:00
David Mally
a457dd5c78 Changed wording to use Result instead of Option in several places, fixed example that actually does use an Option 2015-02-28 17:40:04 -05:00
Ivan Petkov
2fc6224411 Rename LintPass::check_trait_method to check_trait_item
Traits can have associated types and not just methods. This
clarification reflects the the type of the input the method accepts.

[breaking-change]
2015-02-28 13:56:37 -08:00
Björn Steinbrink
0b5ca7850b Re-enable -Z time-llvm-passes when using a single codegen unit
The timing code break when using multiple codegen units, but that
shouldn't stop us from using it with a single codegen unit.
2015-02-28 22:40:39 +01:00
mdinger
000e976819 Fix incorrectly parsed markdown link 2015-02-28 14:05:50 -05:00
bors
8902936552 Auto merge of #21521 - defuz:interval-with-path, r=pnkfelix
Fixing #21475. Right now this code can not be parsed:

```rust
use m::{START, END};

fn main() {
    match 42u32 {
        m::START...m::END => {}, // error: expected one of `::`, `=>`, or `|`, found `...`
        _  => {},
    }
}

mod m {
  pub const START: u32 = 4;
  pub const END:   u32 = 14;
}
```

I fixed the parser and added test for this case, but now there are still problems with mixing literals and paths in interval:

```rust
    match 42u32 {
        0u32...m::END => {},       // mismatched types in range [E0031]
        m::START...59u32 => {},    // mismatched types in range [E0031]
        _  => {},
    }
}
```

I'll try fix this problem and need review.
2015-02-28 18:36:00 +00:00
Björn Steinbrink
d11b48c85c Error out when using static_assert on a non-boolean value
static_assert is documented as working on static with type `bool`, but
we currently accept it on any const static and crash when the const has
an non-integral type.

This is a breaking-change for anyone who used static_assert on types
likes i32, which happened to work but seems like an unintended
consequence of the missing error checking.

[breaking-change]

Fixes #22056
2015-02-28 19:28:49 +01:00
Alexander Campbell
fdc45e361c Change quaranteed -> guaranteed in README.md 2015-02-28 11:33:48 -06:00
Alexander Campbell
d084f7031c Change slithtly -> slightly in README.md 2015-02-28 11:32:13 -06:00
Björn Steinbrink
8b263f7566 Drop support for clang < 3.2
Fixes #20467
2015-02-28 17:53:12 +01:00
Sébastien Marie
28362d542d openbsd: adjust page guard address
some commits in OpenBSD base have corrected a problem of stack position.
Now, we can adjust more accurately the page guard in rust.
2015-02-28 17:26:42 +01:00
John Hodge
c22d026326 ifmt - Add a basic test for {:p} getting truncated 2015-02-28 22:51:29 +08:00
John Hodge
4a22c3368f Fix assuming 32-bit pointers 2015-02-28 22:44:10 +08:00
Edward Wang
2b8207a56d Remove two unsafe impls from iter::Peekable
These implementations were temporary workaround. Now #22828 has been
fixed, they can be removed.
2015-02-28 22:39:50 +08:00
bors
8a69110c3b Auto merge of #22895 - Manishearth:rollup, r=Manishearth
r? @Manishearth
2015-02-28 13:49:35 +00:00
Manish Goregaokar
0775959431 Rollup merge of #22867 - FuGangqiang:master, r=steveklabnik 2015-02-28 19:19:02 +05:30
Manish Goregaokar
6b1471967c Rollup merge of #22887 - JP-Ellis:master, r=huonw
Updated the function to allow comparisons between different types since PartialOrd and PartialEq allow this.
2015-02-28 19:19:01 +05:30
Manish Goregaokar
fcd1c3699a Rollup merge of #22866 - iKevinY:version-output-doc-fix, r=Manishearth
The format of `rustc --version` was changed in #21957; this PR updates TRPL accordingly.
2015-02-28 19:19:01 +05:30
Manish Goregaokar
040a811b91 Rollup merge of #22884 - japaric:obsolete, r=alexcrichton
This is leftover from #21843

If you still have `|&:| {}` closures in your code, simply remove the `&:` part.

[breaking-change]
2015-02-28 19:19:00 +05:30
Manish Goregaokar
37760c1f25 Rollup merge of #22875 - kmcallister:maceager, r=sfackler
MacEager is a MacResult implementation for the common case where you've already built each form of AST that you might return.

Fixes #17637. Based on #18814.

This is a [breaking-change] for syntax extensions:

  * MacExpr::new becomes MacEager::expr.

  * MacPat::new becomes MacEager::pat.

  * MacItems::new becomes MacEager::items. It takes a SmallVector directly,
    not an iterator.

r? @sfackler
2015-02-28 19:18:59 +05:30
Manish Goregaokar
a0f5ed957a Rollup merge of #22869 - alexcrichton:stabilize-env, r=aturon
Now that the `std::env` module has had some time to bake this commit marks most
of its APIs as `#[stable]`. Some notable APIs that are **not** stable (and still
use the same `env` feature gate) are:

* `{set,get}_exit_status` - there are still questions about whether this is the
  right interface for setting/getting the exit status of a process.
* `page_size` - this may change location in the future or perhaps name as well.

This also effectively closes #22122 as the variants of `VarError` are
`#[stable]` now. (this is done intentionally)
2015-02-28 19:18:59 +05:30
Ms2ger
63513d06a2 Remove the re-exports for InlineAttr variants. 2015-02-28 13:56:32 +01:00
Ms2ger
fe2e0976de Use if-let for UnusedImportBraces. 2015-02-28 13:32:34 +01:00
Ms2ger
8a7b6b3ee6 Collapse nested matches in method_context. 2015-02-28 13:32:18 +01:00
Ms2ger
f38b83b360 Avoid unnecessary mutability for UnusedResults. 2015-02-28 13:31:55 +01:00
Ms2ger
2a37f7f07c Add a comment to code that confused me. 2015-02-28 13:31:27 +01:00
Ms2ger
57e0248d34 Various formatting cleanup. 2015-02-28 13:31:14 +01:00
Ms2ger
4dad9077cc Qualify uses of MethodContext variants. 2015-02-28 12:17:11 +01:00