Skip to content

Commit

Permalink
Add isize, usize modules, deprecate int, uint modules
Browse files Browse the repository at this point in the history
This PR introduces `isize` and `usize` modules to `core` and `std`, and
deprecates the existing `int` and `uint` modules. The rustdoc primitive
type links now point to these new modules.

Due to deprecation this is a:

[breaking-change]
  • Loading branch information
aturon committed Jan 7, 2015
1 parent b53e9f1 commit 7deb9ab
Show file tree
Hide file tree
Showing 10 changed files with 113 additions and 12 deletions.
2 changes: 2 additions & 0 deletions src/libcore/lib.rs
Expand Up @@ -78,12 +78,14 @@ mod int_macros;
mod uint_macros;

#[path = "num/int.rs"] pub mod int;
#[path = "num/isize.rs"] pub mod isize;
#[path = "num/i8.rs"] pub mod i8;
#[path = "num/i16.rs"] pub mod i16;
#[path = "num/i32.rs"] pub mod i32;
#[path = "num/i64.rs"] pub mod i64;

#[path = "num/uint.rs"] pub mod uint;
#[path = "num/usize.rs"] pub mod usize;
#[path = "num/u8.rs"] pub mod u8;
#[path = "num/u16.rs"] pub mod u16;
#[path = "num/u32.rs"] pub mod u32;
Expand Down
9 changes: 6 additions & 3 deletions src/libcore/num/int.rs
Expand Up @@ -8,10 +8,13 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for architecture-sized signed integers (`int` type)
//! Deprecated: replaced by `isize`.
//!
//! The rollout of the new type will gradually take place over the
//! alpha cycle along with the development of clearer conventions
//! around integer types.

#![stable]
#![doc(primitive = "int")]
#![deprecated = "replaced by isize"]

#[cfg(target_word_size = "32")] int_module! { int, 32 }
#[cfg(target_word_size = "64")] int_module! { int, 64 }
21 changes: 21 additions & 0 deletions src/libcore/num/isize.rs
@@ -0,0 +1,21 @@
// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for pointer-sized signed integers (`isize` type)
//!
//! This type was recently added to replace `int`. The rollout of the
//! new type will gradually take place over the alpha cycle along with
//! the development of clearer conventions around integer types.

#![stable]
#![doc(primitive = "isize")]

#[cfg(target_word_size = "32")] int_module! { isize, 32 }
#[cfg(target_word_size = "64")] int_module! { isize, 64 }
9 changes: 6 additions & 3 deletions src/libcore/num/uint.rs
Expand Up @@ -8,9 +8,12 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for architecture-sized unsigned integers (`uint` type)
//! Deprecated: replaced by `usize`.
//!
//! The rollout of the new type will gradually take place over the
//! alpha cycle along with the development of clearer conventions
//! around integer types.

#![stable]
#![doc(primitive = "uint")]
#![deprecated = "replaced by usize"]

uint_module! { uint, int, ::int::BITS }
20 changes: 20 additions & 0 deletions src/libcore/num/usize.rs
@@ -0,0 +1,20 @@
// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for pointer-sized unsigned integers (`usize` type)
//!
//! This type was recently added to replace `uint`. The rollout of the
//! new type will gradually take place over the alpha cycle along with
//! the development of clearer conventions around integer types.

#![stable]
#![doc(primitive = "usize")]

uint_module! { usize, isize, ::isize::BITS }
2 changes: 2 additions & 0 deletions src/libstd/lib.rs
Expand Up @@ -201,12 +201,14 @@ mod int_macros;
mod uint_macros;

#[path = "num/int.rs"] pub mod int;
#[path = "num/isize.rs"] pub mod isize;
#[path = "num/i8.rs"] pub mod i8;
#[path = "num/i16.rs"] pub mod i16;
#[path = "num/i32.rs"] pub mod i32;
#[path = "num/i64.rs"] pub mod i64;

#[path = "num/uint.rs"] pub mod uint;
#[path = "num/usize.rs"] pub mod usize;
#[path = "num/u8.rs"] pub mod u8;
#[path = "num/u16.rs"] pub mod u16;
#[path = "num/u32.rs"] pub mod u32;
Expand Down
9 changes: 6 additions & 3 deletions src/libstd/num/int.rs
Expand Up @@ -8,10 +8,13 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for architecture-sized signed integers (`int` type)
//! Deprecated: replaced by `isize`.
//!
//! The rollout of the new type will gradually take place over the
//! alpha cycle along with the development of clearer conventions
//! around integer types.

#![stable]
#![doc(primitive = "int")]
#![deprecated = "replaced by isize"]

pub use core::int::{BITS, BYTES, MIN, MAX};

Expand Down
22 changes: 22 additions & 0 deletions src/libstd/num/isize.rs
@@ -0,0 +1,22 @@
// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for pointer-sized signed integers (`isize` type)
//!
//! This type was recently added to replace `int`. The rollout of the
//! new type will gradually take place over the alpha cycle along with
//! the development of clearer conventions around integer types.

#![stable]
#![doc(primitive = "isize")]

pub use core::isize::{BITS, BYTES, MIN, MAX};

int_module! { isize }
9 changes: 6 additions & 3 deletions src/libstd/num/uint.rs
Expand Up @@ -8,10 +8,13 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for architecture-sized unsigned integers (`uint` type)
//! Deprecated: replaced by `usize`.
//!
//! The rollout of the new type will gradually take place over the
//! alpha cycle along with the development of clearer conventions
//! around integer types.

#![stable]
#![doc(primitive = "uint")]
#![deprecated = "replaced by usize"]

pub use core::uint::{BITS, BYTES, MIN, MAX};

Expand Down
22 changes: 22 additions & 0 deletions src/libstd/num/usize.rs
@@ -0,0 +1,22 @@
// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Operations and constants for pointer-sized unsigned integers (`usize` type)
//!
//! This type was recently added to replace `uint`. The rollout of the
//! new type will gradually take place over the alpha cycle along with
//! the development of clearer conventions around integer types.

#![stable]
#![doc(primitive = "usize")]

pub use core::usize::{BITS, BYTES, MIN, MAX};

uint_module! { usize }

4 comments on commit 7deb9ab

@bors
Copy link
Contributor

@bors bors commented on 7deb9ab Jan 7, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from alexcrichton
at aturon@7deb9ab

@bors
Copy link
Contributor

@bors bors commented on 7deb9ab Jan 7, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging aturon/rust/new-int-modules = 7deb9ab into auto

@bors
Copy link
Contributor

@bors bors commented on 7deb9ab Jan 7, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

status: {"merge_sha": "d8933ae74b47bc4887e67477b3b349537b377d66"}

@bors
Copy link
Contributor

@bors bors commented on 7deb9ab Jan 7, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aturon/rust/new-int-modules = 7deb9ab merged ok, testing candidate = d8933ae7

Please sign in to comment.