Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
rust-lang/rust
petrochenkov/rust
0xAX/rust
12234/rust
4414/rust
APTy/rust
Acidburn0zzz/rust-lang
AerialX/rust
Alinuxfriend/rust
Arreth/rust
CNXTEoEorg/rust
DanielJCampbell/rust
DiamondLovesYou/rust
EllieAdam/rust
Epictetus/rust
GulajavaMinistudio/rust
JamesLinus/rust
MabezDev/rust-xtensa
Manishearth/rust
Nashenas88/rust
NickPepper/rust
P1start/rust
Raul630/rust
SONNYROBOT/rust
Tengfei1010/rust
XAMPPRocky/rust
XiangQingW/rust
Yoric/rust
Zoxc/rust
abossard/rust
alanfalloon/rust
alex/rust
alexcrichton/rust
alexrp/rust
alistra/rust
anasazi/rust
apoelstra/rust
arkaitzj/rust
atris/rust
avr-rust/rust
bendotc/rust
benjaminjackman/rust
berkus/rust
bjadamson/rust
bklooste/rust
blorf/rust-on-gpu
brianloveswords/rust
brson/rust
caiges/rust
catamorphism/rust
cavedweller/rust
charliesome/rust
chengky/rust
chirag08/rust
chmodawk/rust
chrisdew/rust
cjfrisz/rust
crabtw/rust
csae1152/rust
da-x/rust
dbp/rust
delewit/rust
dobkeratops/rust
dojotech/rust
drhodes/rust
driax/rust
eddyb/rust
eholk/rust
ehsan/rust
elliottslaughter/rust
elly/rust
erickt/rust
erikrose/rust
espadrine/rust
eter360/rust
funkill/rust
fzzzy/rust
gilescope/rust
glaubitz/rust
gmfawcett/rust
gordonlw/rust
grahame/rust
graydon/rust
green-panther/rust
gwillen/rust
harnoor992/rust
ids1024/rust
ischeinkman/libnx-rs-std
j-clark/rust
jamorton/rust
janus/rust
jdm/rust
jeanpuga/rust
jensnockert/rust
jld/rust
joelgarciajr84/rust
johnterickson/rust
jorendorff/rust
jrgold/rust
jruderman/rust
jwatt/rust
jwilberding/rust
jwise/rust
jyasskin/rust
kevina/rust
killerswan/rust
kleimkuhler/rust
kosslab-kr/rust
kumasento/rust
levonlloyd/rust
lht/rust
liigo/rust
liufeigit/rust
lkuper/rust
logie17/rust
lunarpulse/rust
macressler/rust
masondesu/rust
matricks/rust
mbrubeck/rust
mcandre/rust
megakorre/rust
mhenes/rust
michaelwoerister/rust
milkowski/rust
miselin/rust
mitsuhiko/rust
mmeyerho/rust
mneumann/rust
mounir34/rust
mpark/rust
mrmonday/rust
mujiatong/rust
muyayo/rust
nathanielherman/rust
nbaksalyar/rust
nbp/rust
nielx/rust
nikomatsakis/rust
nrc/rust
oyiptong/rust
ozzie00/rust
pcwalton/rust
pkarvou/rust
poiru/rust
pwoolcoc/rust
rbancroft/rust
redox-os/rust
reuben/rust
robyoung/rust
rozbb/rust
rpearl/rust
rtanglao/rust
rust-highfive/rust
rustlang/rust
rusty-horizon/horizon-nx-std
rwaldron/rust
samgiles/rust
sarojaba/rust-doc-korean
sayrer/rust
sdeniskos/rust
semarie/rust
sferik/rust
shepmaster/rust
shinglyu/rust
shinta42/rust
sigma318/rust
smaeul/rust
songshaodong/rust
stereotype441/rust
steveklabnik/rust
strangeglyph/rust
sunlightboy/rust
tbu-/rust
tclfs/rust
tedhorst/rust
tfviv79/rust
thomaslee/rust
tohava/rust
tomaka/rust
toshok/rust
tromey/rust
trulliandloeb/rust
tshakah/rust
uasi/rust
vadimcn/rust
varkor/rust
vendula/rust
vhbit/rust
vy12021/rust
waywardmonkeys/rust
webea/rust
wesj/rust
whtoo/rust
williamw520/rust
wilsonk/rust
withoutboats/rust
yamidevs/rust
yodalee/rust
ysbaddaden/rust
zhaobr/rust
Nothing to show
base: 5b56d73
Choose a Head Repository
rust-lang/rust
petrochenkov/rust
0xAX/rust
12234/rust
4414/rust
APTy/rust
Acidburn0zzz/rust-lang
AerialX/rust
Alinuxfriend/rust
Arreth/rust
CNXTEoEorg/rust
DanielJCampbell/rust
DiamondLovesYou/rust
EllieAdam/rust
Epictetus/rust
GulajavaMinistudio/rust
JamesLinus/rust
MabezDev/rust-xtensa
Manishearth/rust
Nashenas88/rust
NickPepper/rust
P1start/rust
Raul630/rust
SONNYROBOT/rust
Tengfei1010/rust
XAMPPRocky/rust
XiangQingW/rust
Yoric/rust
Zoxc/rust
abossard/rust
alanfalloon/rust
alex/rust
alexcrichton/rust
alexrp/rust
alistra/rust
anasazi/rust
apoelstra/rust
arkaitzj/rust
atris/rust
avr-rust/rust
bendotc/rust
benjaminjackman/rust
berkus/rust
bjadamson/rust
bklooste/rust
blorf/rust-on-gpu
brianloveswords/rust
brson/rust
caiges/rust
catamorphism/rust
cavedweller/rust
charliesome/rust
chengky/rust
chirag08/rust
chmodawk/rust
chrisdew/rust
cjfrisz/rust
crabtw/rust
csae1152/rust
da-x/rust
dbp/rust
delewit/rust
dobkeratops/rust
dojotech/rust
drhodes/rust
driax/rust
eddyb/rust
eholk/rust
ehsan/rust
elliottslaughter/rust
elly/rust
erickt/rust
erikrose/rust
espadrine/rust
eter360/rust
funkill/rust
fzzzy/rust
gilescope/rust
glaubitz/rust
gmfawcett/rust
gordonlw/rust
grahame/rust
graydon/rust
green-panther/rust
gwillen/rust
harnoor992/rust
ids1024/rust
ischeinkman/libnx-rs-std
j-clark/rust
jamorton/rust
janus/rust
jdm/rust
jeanpuga/rust
jensnockert/rust
jld/rust
joelgarciajr84/rust
johnterickson/rust
jorendorff/rust
jrgold/rust
jruderman/rust
jwatt/rust
jwilberding/rust
jwise/rust
jyasskin/rust
kevina/rust
killerswan/rust
kleimkuhler/rust
kosslab-kr/rust
kumasento/rust
levonlloyd/rust
lht/rust
liigo/rust
liufeigit/rust
lkuper/rust
logie17/rust
lunarpulse/rust
macressler/rust
masondesu/rust
matricks/rust
mbrubeck/rust
mcandre/rust
megakorre/rust
mhenes/rust
michaelwoerister/rust
milkowski/rust
miselin/rust
mitsuhiko/rust
mmeyerho/rust
mneumann/rust
mounir34/rust
mpark/rust
mrmonday/rust
mujiatong/rust
muyayo/rust
nathanielherman/rust
nbaksalyar/rust
nbp/rust
nielx/rust
nikomatsakis/rust
nrc/rust
oyiptong/rust
ozzie00/rust
pcwalton/rust
pkarvou/rust
poiru/rust
pwoolcoc/rust
rbancroft/rust
redox-os/rust
reuben/rust
robyoung/rust
rozbb/rust
rpearl/rust
rtanglao/rust
rust-highfive/rust
rustlang/rust
rusty-horizon/horizon-nx-std
rwaldron/rust
samgiles/rust
sarojaba/rust-doc-korean
sayrer/rust
sdeniskos/rust
semarie/rust
sferik/rust
shepmaster/rust
shinglyu/rust
shinta42/rust
sigma318/rust
smaeul/rust
songshaodong/rust
stereotype441/rust
steveklabnik/rust
strangeglyph/rust
sunlightboy/rust
tbu-/rust
tclfs/rust
tedhorst/rust
tfviv79/rust
thomaslee/rust
tohava/rust
tomaka/rust
toshok/rust
tromey/rust
trulliandloeb/rust
tshakah/rust
uasi/rust
vadimcn/rust
varkor/rust
vendula/rust
vhbit/rust
vy12021/rust
waywardmonkeys/rust
webea/rust
wesj/rust
whtoo/rust
williamw520/rust
wilsonk/rust
withoutboats/rust
yamidevs/rust
yodalee/rust
ysbaddaden/rust
zhaobr/rust
Nothing to show
compare: eb1b670
  • 5 commits
  • 176 files changed
  • 0 commit comments
  • 1 contributor
Showing with 743 additions and 584 deletions.
  1. +4 −4 src/doc/trpl/ffi.md
  2. +1 −1 src/doc/trpl/lang-items.md
  3. +2 −2 src/doc/trpl/no-stdlib.md
  4. +2 −1 src/etc/unicode.py
  5. +3 −3 src/grammar/verify.rs
  6. +5 −3 src/liballoc/heap.rs
  7. +5 −4 src/libcollections/bit.rs
  8. +4 −3 src/libcollections/enum_set.rs
  9. +3 −2 src/libcollections/slice.rs
  10. +3 −3 src/libcollectionstest/bit/set.rs
  11. +5 −5 src/libcollectionstest/bit/vec.rs
  12. +1 −1 src/libcore/atomic.rs
  13. +2 −1 src/libcore/hash/mod.rs
  14. +7 −6 src/libcore/iter.rs
  15. +9 −6 src/libcore/num/flt2dec/mod.rs
  16. +15 −14 src/libcore/num/flt2dec/strategy/dragon.rs
  17. +10 −9 src/libcore/num/flt2dec/strategy/grisu.rs
  18. +119 −2 src/libcore/num/mod.rs
  19. +17 −16 src/libcore/num/wrapping.rs
  20. +7 −6 src/libcore/str/mod.rs
  21. +1 −1 src/libcoretest/iter.rs
  22. +2 −2 src/libflate/lib.rs
  23. +1 −1 src/libfmt_macros/lib.rs
  24. +1 −1 src/libgraphviz/lib.rs
  25. +1 −1 src/liblog/lib.rs
  26. +3 −2 src/librand/distributions/mod.rs
  27. +5 −4 src/librand/isaac.rs
  28. +3 −2 src/librand/rand_impls.rs
  29. +27 −27 src/librbml/lib.rs
  30. +1 −1 src/librustc/diagnostics.rs
  31. +4 −4 src/librustc/metadata/cstore.rs
  32. +9 −9 src/librustc/metadata/decoder.rs
  33. +4 −4 src/librustc/metadata/encoder.rs
  34. +5 −5 src/librustc/metadata/loader.rs
  35. +1 −1 src/librustc/metadata/tydecode.rs
  36. +1 −1 src/librustc/middle/dataflow.rs
  37. +1 −1 src/librustc/middle/dependency_format.rs
  38. +31 −31 src/librustc/middle/infer/region_inference/mod.rs
  39. +7 −7 src/librustc/middle/infer/type_variable.rs
  40. +3 −3 src/librustc/middle/subst.rs
  41. +3 −3 src/librustc/middle/traits/select.rs
  42. +3 −3 src/librustc/middle/ty.rs
  43. +7 −7 src/librustc_data_structures/unify/mod.rs
  44. +2 −2 src/librustc_llvm/archive_ro.rs
  45. +1 −1 src/librustc_llvm/lib.rs
  46. +3 −3 src/librustc_trans/back/link.rs
  47. +2 −1 src/librustc_trans/back/lto.rs
  48. +13 −12 src/librustc_trans/trans/adt.rs
  49. +1 −1 src/librustc_trans/trans/base.rs
  50. +3 −3 src/librustc_trans/trans/cabi_aarch64.rs
  51. +3 −3 src/librustc_trans/trans/cabi_arm.rs
  52. +2 −2 src/librustc_trans/trans/cabi_mips.rs
  53. +2 −2 src/librustc_trans/trans/cabi_powerpc.rs
  54. +2 −2 src/librustc_trans/trans/cabi_x86_64.rs
  55. +1 −1 src/librustc_trans/trans/context.rs
  56. +10 −8 src/librustc_trans/trans/debuginfo/metadata.rs
  57. +4 −4 src/librustc_trans/trans/intrinsic.rs
  58. +1 −1 src/librustc_trans/trans/tvec.rs
  59. +8 −6 src/librustc_trans/trans/type_.rs
  60. +2 −2 src/librustc_typeck/astconv.rs
  61. +1 −1 src/librustc_typeck/check/mod.rs
  62. +1 −1 src/librustc_typeck/collect.rs
  63. +5 −5 src/librustc_typeck/variance.rs
  64. +2 −1 src/librustc_unicode/tables.rs
  65. +2 −1 src/librustc_unicode/u_str.rs
  66. +1 −1 src/librustdoc/html/markdown.rs
  67. +2 −2 src/librustdoc/html/render.rs
  68. +5 −5 src/libserialize/hex.rs
  69. +6 −6 src/libserialize/json.rs
  70. +2 −2 src/libstd/ascii.rs
  71. +3 −2 src/libstd/collections/hash/map.rs
  72. +3 −2 src/libstd/collections/hash/table.rs
  73. +2 −1 src/libstd/ffi/c_str.rs
  74. +2 −2 src/libstd/fs.rs
  75. +5 −5 src/libstd/io/cursor.rs
  76. +4 −3 src/libstd/io/mod.rs
  77. +1 −0 src/libstd/num/mod.rs
  78. +2 −0 src/libstd/prelude/v1.rs
  79. +1 −1 src/libstd/rand/os.rs
  80. +10 −9 src/libstd/sys/common/net.rs
  81. +1 −1 src/libstd/sys/common/stack.rs
  82. +2 −2 src/libstd/sys/common/thread_local.rs
  83. +1 −1 src/libstd/sys/unix/backtrace.rs
  84. +3 −2 src/libstd/sys/unix/c.rs
  85. +3 −2 src/libstd/sys/unix/fd.rs
  86. +4 −3 src/libstd/sys/unix/fs.rs
  87. +8 −8 src/libstd/sys/unix/os.rs
  88. +2 −2 src/libstd/sys/unix/stack_overflow.rs
  89. +9 −8 src/libstd/sys/unix/thread.rs
  90. +2 −1 src/libstd/sys/windows/c.rs
  91. +1 −1 src/libstd/sys/windows/condvar.rs
  92. +2 −1 src/libstd/sys/windows/fs.rs
  93. +2 −2 src/libstd/sys/windows/handle.rs
  94. +1 −1 src/libstd/sys/windows/mod.rs
  95. +1 −1 src/libstd/sys/windows/net.rs
  96. +3 −3 src/libstd/sys/windows/os.rs
  97. +2 −1 src/libstd/sys/windows/stack_overflow.rs
  98. +3 −3 src/libstd/sys/windows/stdio.rs
  99. +1 −1 src/libsyntax/ast.rs
  100. +5 −5 src/libsyntax/ast_map/mod.rs
  101. +4 −4 src/libsyntax/codemap.rs
  102. +4 −4 src/libsyntax/ext/mtwt.rs
  103. +5 −5 src/libsyntax/parse/parser.rs
  104. +1 −1 src/libsyntax/print/pp.rs
  105. +5 −5 src/libterm/terminfo/parm.rs
  106. +17 −17 src/libterm/terminfo/parser/compiled.rs
  107. +6 −6 src/libtest/lib.rs
  108. +3 −3 src/libtest/stats.rs
  109. +4 −4 src/test/auxiliary/xcrate_static_addresses.rs
  110. +4 −4 src/test/bench/noise.rs
  111. +6 −6 src/test/bench/shootout-fannkuch-redux.rs
  112. +4 −4 src/test/bench/shootout-k-nucleotide.rs
  113. +2 −2 src/test/bench/shootout-meteor.rs
  114. +3 −3 src/test/bench/shootout-reverse-complement.rs
  115. +1 −1 src/test/bench/shootout-threadring.rs
  116. +12 −12 src/test/bench/sudoku.rs
  117. +2 −2 src/test/compile-fail/cast-rfc0401.rs
  118. +2 −2 src/test/compile-fail/const-eval-overflow-3.rs
  119. +2 −2 src/test/compile-fail/const-eval-overflow-3b.rs
  120. +2 −2 src/test/compile-fail/const-eval-overflow-4.rs
  121. +2 −2 src/test/compile-fail/const-eval-overflow-4b.rs
  122. +3 −3 src/test/compile-fail/fat-ptr-cast.rs
  123. +1 −1 src/test/compile-fail/huge-array-simple.rs
  124. +1 −1 src/test/compile-fail/issue-10991.rs
  125. +1 −1 src/test/compile-fail/issue-13359.rs
  126. +1 −1 src/test/compile-fail/issue-17458.rs
  127. +1 −1 src/test/compile-fail/issue-18294.rs
  128. +1 −1 src/test/compile-fail/non-constant-enum-for-vec-repeat.rs
  129. +1 −1 src/test/debuginfo/lexical-scopes-in-block-expression.rs
  130. +1 −1 src/test/pretty/block-disambig.rs
  131. +10 −10 src/test/pretty/issue-4264.pp
  132. +2 −2 src/test/run-fail/bug-2470-bounds-check-overflow-3.rs
  133. +1 −1 src/test/run-fail/bug-2470-bounds-check-overflow.rs
  134. +1 −1 src/test/run-make/extern-flag-disambiguates/d.rs
  135. +1 −1 src/test/run-make/issue-25581/test.rs
  136. +1 −1 src/test/run-pass/arith-1.rs
  137. +2 −2 src/test/run-pass/as-precedence.rs
  138. +1 −1 src/test/run-pass/assignability-trait.rs
  139. +1 −1 src/test/run-pass/associated-types-constant-type.rs
  140. +2 −2 src/test/run-pass/bitwise.rs
  141. +1 −1 src/test/run-pass/borrowck-borrow-from-expr-block.rs
  142. +1 −1 src/test/run-pass/box-of-array-of-drop-1.rs
  143. +1 −1 src/test/run-pass/box-of-array-of-drop-2.rs
  144. +1 −1 src/test/run-pass/cast-in-array-size.rs
  145. +1 −1 src/test/run-pass/cast-rfc0401.rs
  146. +2 −2 src/test/run-pass/class-impl-very-parameterized-trait.rs
  147. +2 −2 src/test/run-pass/const-block.rs
  148. +1 −1 src/test/run-pass/empty-tag.rs
  149. +1 −1 src/test/run-pass/expr-if-struct.rs
  150. +1 −1 src/test/run-pass/expr-match-struct.rs
  151. +2 −2 src/test/run-pass/fat-ptr-cast.rs
  152. +2 −2 src/test/run-pass/foreach-nested.rs
  153. +1 −1 src/test/run-pass/intrinsic-return-address.rs
  154. +2 −2 src/test/run-pass/issue-2074.rs
  155. +1 −1 src/test/run-pass/issue-21486.rs
  156. +4 −4 src/test/run-pass/issue-2895.rs
  157. +4 −4 src/test/run-pass/issue-3563-3.rs
  158. +3 −3 src/test/run-pass/issue-4241.rs
  159. +1 −1 src/test/run-pass/issue-9942.rs
  160. +1 −1 src/test/run-pass/mutable-alias-vec.rs
  161. +1 −1 src/test/run-pass/nested-vec-3.rs
  162. +1 −1 src/test/run-pass/running-with-no-runtime.rs
  163. +1 −0 src/test/run-pass/sepcomp-lib-lto.rs
  164. +18 −18 src/test/run-pass/shift.rs
  165. +1 −1 src/test/run-pass/static-impl.rs
  166. +1 −1 src/test/run-pass/struct-order-of-eval-3.rs
  167. +1 −1 src/test/run-pass/struct-order-of-eval-4.rs
  168. +5 −5 src/test/run-pass/struct-return.rs
  169. +1 −1 src/test/run-pass/structured-compare.rs
  170. +15 −15 src/test/run-pass/supported-cast.rs
  171. +1 −1 src/test/run-pass/tag-variant-disr-val.rs
  172. +11 −11 src/test/run-pass/type-sizes.rs
  173. +1 −1 src/test/run-pass/typeck_type_placeholder_1.rs
  174. +1 −1 src/test/run-pass/uint.rs
  175. +2 −2 src/test/run-pass/utf8.rs
  176. +1 −1 src/test/run-pass/vec-repeat-with-cast.rs
@@ -120,11 +120,11 @@ pub fn compress(src: &[u8]) -> Vec<u8> {
let psrc = src.as_ptr();
let mut dstlen = snappy_max_compressed_length(srclen);
let mut dst = Vec::with_capacity(dstlen as usize);
let mut dst = Vec::with_capacity(dstlen);
let pdst = dst.as_mut_ptr();
snappy_compress(psrc, srclen, pdst, &mut dstlen);
dst.set_len(dstlen as usize);
dst.set_len(dstlen);
dst
}
}
@@ -153,11 +153,11 @@ pub fn uncompress(src: &[u8]) -> Option<Vec<u8>> {
let mut dstlen: size_t = 0;
snappy_uncompressed_length(psrc, srclen, &mut dstlen);
let mut dst = Vec::with_capacity(dstlen as usize);
let mut dst = Vec::with_capacity(dstlen);
let pdst = dst.as_mut_ptr();
if snappy_uncompress(psrc, srclen, pdst, &mut dstlen) == 0 {
dst.set_len(dstlen as usize);
dst.set_len(dstlen);
Some(dst)
} else {
None // SNAPPY_INVALID_INPUT
@@ -33,7 +33,7 @@ unsafe fn allocate(size: usize, _align: usize) -> *mut u8 {
let p = libc::malloc(size as libc::size_t) as *mut u8;
// malloc failed
if p as usize == 0 {
if p == 0 {
abort();
}
@@ -128,8 +128,8 @@ pub extern fn dot_product(a: *const u32, a_len: u32,
// cannot tell the pointers are valid.
let (a_slice, b_slice): (&[u32], &[u32]) = unsafe {
mem::transmute((
Slice { data: a, len: a_len as usize },
Slice { data: b, len: b_len as usize },
Slice { data: a, len: a_len },
Slice { data: b, len: b_len },
))
};
@@ -406,6 +406,7 @@ def emit_charwidth_module(f, width_table):
f.write(" use core::option::Option::{Some, None};\n")
f.write(" use core::slice::SliceExt;\n")
f.write(" use core::result::Result::{Ok, Err};\n")
f.write(" use core::num::Widen;\n")
f.write("""
fn bsearch_range_value_table(c: char, is_cjk: bool, r: &'static [(char, char, u8, u8)]) -> u8 {
use core::cmp::Ordering::{Equal, Less, Greater};
@@ -430,7 +431,7 @@ def emit_charwidth_module(f, width_table):
cu if cu < 0x20 => None, // control sequences have no width
cu if cu < 0x7F => Some(1), // ASCII
cu if cu < 0xA0 => None, // more control sequences
_ => Some(bsearch_range_value_table(c, is_cjk, charwidth_table) as usize)
_ => Some(bsearch_range_value_table(c, is_cjk, charwidth_table).widen())
}
}
@@ -226,8 +226,8 @@ fn parse_antlr_token(s: &str, tokens: &HashMap<String, token::Token>, surrogate_
let mut hi = end.parse::<u32>().unwrap() + 1 - offset;

// Adjust the span: For each surrogate pair already encountered, subtract one position.
lo -= surrogate_pairs_pos.binary_search(&(lo as usize)).unwrap_or_else(|x| x) as u32;
hi -= surrogate_pairs_pos.binary_search(&(hi as usize)).unwrap_or_else(|x| x) as u32;
lo -= surrogate_pairs_pos.binary_search(&(lo)).unwrap_or_else(|x| x) as u32;
hi -= surrogate_pairs_pos.binary_search(&(hi)).unwrap_or_else(|x| x) as u32;

let sp = codemap::Span {
lo: codemap::BytePos(lo),
@@ -274,7 +274,7 @@ fn main() {
File::open(&Path::new(&filename)).unwrap().read_to_string(&mut code).unwrap();

let surrogate_pairs_pos: Vec<usize> = code.chars().enumerate()
.filter(|&(_, c)| c as usize > 0xFFFF)
.filter(|&(_, c)| c > 0xFFFF)
.map(|(n, _)| n)
.enumerate()
.map(|(x, n)| x + n)
@@ -9,11 +9,12 @@
// except according to those terms.

use core::{isize, usize};
use core::num::ConvertSign;

#[inline(always)]
fn check_size_and_alignment(size: usize, align: usize) {
debug_assert!(size != 0);
debug_assert!(size <= isize::MAX as usize, "Tried to allocate too much: {} bytes", size);
debug_assert!(size <= isize::MAX.as_unsigned(), "Tried to allocate too much: {} bytes", size);
debug_assert!(usize::is_power_of_two(align), "Invalid alignment of allocation: {}", align);
}

@@ -204,6 +205,7 @@ mod imp {
use core::ptr::{null_mut, null};
use libc::{c_char, c_int, c_void, size_t};
use super::MIN_ALIGN;
use core::num::Widen;

#[link(name = "jemalloc", kind = "static")]
#[cfg(not(test))]
@@ -254,7 +256,7 @@ mod imp {
pub unsafe fn reallocate_inplace(ptr: *mut u8, _old_size: usize, size: usize,
align: usize) -> usize {
let flags = align_to_flags(align);
je_xallocx(ptr as *mut c_void, size as size_t, 0, flags) as usize
je_xallocx(ptr as *mut c_void, size as size_t, 0, flags).widen()
}

#[inline]
@@ -266,7 +268,7 @@ mod imp {
#[inline]
pub fn usable_size(size: usize, align: usize) -> usize {
let flags = align_to_flags(align);
unsafe { je_nallocx(size as size_t, flags) as usize }
unsafe { je_nallocx(size as size_t, flags).widen() }
}

pub fn stats_print() {
@@ -54,7 +54,7 @@
//! bv.set(0, false);
//! bv.set(1, false);
//!
//! for i in iter::range_inclusive(2, (max_prime as f64).sqrt() as usize) {
//! for i in iter::range_inclusive(2, (max_prime as f64).sqrt()) {
//! // if i is a prime
//! if bv[i] {
//! // Mark all multiples of i as non-prime (any multiples below i * i
@@ -90,6 +90,7 @@ use core::iter::RandomAccessIterator;
use core::iter::{Chain, Enumerate, Repeat, Skip, Take, repeat, Cloned};
use core::iter::{self, FromIterator};
use core::mem::swap;
use core::num::Widen;
use core::ops::Index;
use core::slice;
use core::{u8, u32, usize};
@@ -1876,7 +1877,7 @@ impl BitSet {
#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
pub fn len(&self) -> usize {
self.bit_vec.blocks().fold(0, |acc, n| acc + n.count_ones() as usize)
self.bit_vec.blocks().fold(0, |acc, n| acc + n.count_ones().widen_(0usize))
}

/// Returns whether there are no bits set in this set
@@ -2048,13 +2049,13 @@ impl<'a, T> Iterator for BlockIter<T> where T: Iterator<Item=u32> {
// update block, removing the LSB
self.head &= self.head - 1;
// return offset + (index of LSB)
Some(self.head_offset + (u32::count_ones(k) as usize))
Some(self.head_offset + u32::count_ones(k).widen_(0usize))
}

#[inline]
fn size_hint(&self) -> (usize, Option<usize>) {
match self.tail.size_hint() {
(_, Some(h)) => (0, Some(1 + h * (u32::BITS as usize))),
(_, Some(h)) => (0, Some(1 + h * (u32::BITS))),
_ => (0, None)
}
}
@@ -18,6 +18,7 @@ use core::marker;
use core::fmt;
use core::iter::{FromIterator};
use core::ops::{Sub, BitOr, BitAnd, BitXor};
use core::num::Widen;

// FIXME(contentions): implement union family of methods? (general design may be wrong here)

@@ -68,7 +69,7 @@ impl<E:CLike + fmt::Debug> fmt::Debug for EnumSet<E> {
///
/// impl CLike for Foo {
/// fn to_usize(&self) -> usize {
/// *self as usize
/// *self
/// }
///
/// fn from_usize(v: usize) -> Foo {
@@ -103,7 +104,7 @@ impl<E:CLike> EnumSet<E> {
#[unstable(feature = "collections",
reason = "matches collection reform specification, waiting for dust to settle")]
pub fn len(&self) -> usize {
self.bits.count_ones() as usize
self.bits.count_ones().widen()
}

/// Returns true if the `EnumSet` is empty.
@@ -258,7 +259,7 @@ impl<E:CLike> Iterator for Iter<E> {
}

fn size_hint(&self) -> (usize, Option<usize>) {
let exact = self.bits.count_ones() as usize;
let exact = self.bits.count_ones().widen();
(exact, Some(exact))
}
}
@@ -91,6 +91,7 @@ use core::iter::Iterator;
use core::marker::Sized;
use core::mem::size_of;
use core::mem;
use core::num::ConvertSign;
use core::ops::FnMut;
use core::option::Option::{self, Some, None};
use core::ptr;
@@ -1259,7 +1260,7 @@ fn insertion_sort<T, F>(v: &mut [T], mut compare: F) where F: FnMut(&T, &T) -> O
let tmp = ptr::read(read_ptr);
ptr::copy(&*buf_v.offset(j),
buf_v.offset(j + 1),
(i - j) as usize);
(i - j).as_unsigned());
ptr::copy_nonoverlapping(&tmp, buf_v.offset(j), 1);
mem::forget(tmp);
}
@@ -1335,7 +1336,7 @@ fn merge_sort<T, F>(v: &mut [T], mut compare: F) where F: FnMut(&T, &T) -> Order
// `.offset(j)` is always in bounds.
ptr::copy(&*buf_dat.offset(j),
buf_dat.offset(j + 1),
i - j as usize);
i - j.as_unsigned());
ptr::copy_nonoverlapping(read_ptr, buf_dat.offset(j), 1);
}
}
@@ -467,7 +467,7 @@ mod bench {
let mut bit_vec = BitSet::new();
b.iter(|| {
for _ in 0..100 {
bit_vec.insert((r.next_u32() as usize) % u32::BITS);
bit_vec.insert((r.next_u32().widen_(0usize)) % u32::BITS);
}
black_box(&bit_vec);
});
@@ -479,7 +479,7 @@ mod bench {
let mut bit_vec = BitSet::new();
b.iter(|| {
for _ in 0..100 {
bit_vec.insert((r.next_u32() as usize) % BENCH_BITS);
bit_vec.insert((r.next_u32().widen_(0usize)) % BENCH_BITS);
}
black_box(&bit_vec);
});
@@ -492,7 +492,7 @@ mod bench {
b.iter(|| {
let mut sum = 0;
for idx in &bit_vec {
sum += idx as usize;
sum += idx;
}
sum
})
@@ -781,10 +781,10 @@ mod bench {
#[bench]
fn bench_usize_small(b: &mut Bencher) {
let mut r = rng();
let mut bit_vec = 0 as usize;
let mut bit_vec = 0;
b.iter(|| {
for _ in 0..100 {
bit_vec |= 1 << ((r.next_u32() as usize) % u32::BITS);
bit_vec |= 1 << ((r.next_u32().widen_(0usize)) % u32::BITS);
}
black_box(&bit_vec);
});
@@ -796,7 +796,7 @@ mod bench {
let mut bit_vec = BitVec::from_elem(BENCH_BITS, false);
b.iter(|| {
for _ in 0..100 {
bit_vec.set((r.next_u32() as usize) % BENCH_BITS, true);
bit_vec.set((r.next_u32().widen_(0usize)) % BENCH_BITS, true);
}
black_box(&bit_vec);
});
@@ -808,7 +808,7 @@ mod bench {
let mut bit_vec = BitVec::from_elem(BENCH_BITS, false);
b.iter(|| {
for _ in 0..100 {
bit_vec.set((r.next_u32() as usize) % BENCH_BITS, r.gen());
bit_vec.set((r.next_u32().widen_(0usize)) % BENCH_BITS, r.gen());
}
black_box(&bit_vec);
});
@@ -820,7 +820,7 @@ mod bench {
let mut bit_vec = BitVec::from_elem(u32::BITS, false);
b.iter(|| {
for _ in 0..100 {
bit_vec.set((r.next_u32() as usize) % u32::BITS, true);
bit_vec.set((r.next_u32().widen_(0usize)) % u32::BITS, true);
}
black_box(&bit_vec);
});
@@ -346,7 +346,7 @@ impl AtomicBool {
///
/// let foo = AtomicBool::new(true);
/// assert_eq!(true, foo.fetch_nand(true, Ordering::SeqCst));
/// assert_eq!(0, foo.load(Ordering::SeqCst) as usize);
/// assert_eq!(0, foo.load(Ordering::SeqCst));
/// assert_eq!(false, foo.load(Ordering::SeqCst));
///
/// let foo = AtomicBool::new(false);
@@ -63,6 +63,7 @@
use prelude::*;

use mem;
use num::ConvertSign;

pub use self::sip::SipHasher;

@@ -160,7 +161,7 @@ pub trait Hasher {
/// Write a single `isize` into this hasher.
#[inline]
#[unstable(feature = "hash", reason = "module was recently redesigned")]
fn write_isize(&mut self, i: isize) { self.write_usize(i as usize) }
fn write_isize(&mut self, i: isize) { self.write_usize(i.as_unsigned()) }
}

/// Hash a value with the default SipHasher algorithm (two initial keys of 0).
@@ -65,6 +65,7 @@ use default::Default;
use marker;
use mem;
use num::{Zero, One};
use num::{ConvertSign, Widen};
use ops::{self, Add, Sub, FnMut, Mul, RangeFrom};
use option::Option::{self, Some, None};
use marker::Sized;
@@ -2609,8 +2610,8 @@ macro_rules! step_impl_unsigned {
if *by == 0 { return None; }
if *start < *end {
// Note: We assume $t <= usize here
let diff = (*end - *start) as usize;
let by = *by as usize;
let diff = (*end - *start).widen_(0usize);
let by = by.widen_(0usize);
if diff % by > 0 {
Some(diff / by + 1)
} else {
@@ -2643,14 +2644,14 @@ macro_rules! step_impl_signed {
// Note: We assume $t <= isize here
// Use .wrapping_sub and cast to usize to compute the
// difference that may not fit inside the range of isize.
diff = (*end as isize).wrapping_sub(*start as isize) as usize;
by_u = *by as usize;
diff = (*end as isize).wrapping_sub(*start as isize).as_unsigned();
by_u = by.as_unsigned().widen();
} else {
if *start <= *end {
return Some(0);
}
diff = (*start as isize).wrapping_sub(*end as isize) as usize;
by_u = (*by as isize).wrapping_mul(-1) as usize;
diff = (*start as isize).wrapping_sub(*end as isize).as_unsigned();
by_u = (*by as isize).wrapping_mul(-1).as_unsigned();
}
if diff % by_u > 0 {
Some(diff / by_u + 1)
Oops, something went wrong.

No commit comments for this range

You can’t perform that action at this time.