diff options
| author | bors <bors@rust-lang.org> | 2016-01-07 14:22:49 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-01-07 14:22:49 +0000 |
| commit | 03f49502391a45e4b021c332dc9f38a05087b84a (patch) | |
| tree | b3756ecfc6fdcf8439e0d9a44f5ad040bb9864b1 /src/libstd/sys/unix/stack_overflow.rs | |
| parent | 1e8350387c57582561874aa2a5aeb4d5370cfc04 (diff) | |
| parent | b2903d87c90709e5ae45e225718b23a91bfbd0eb (diff) | |
| download | rust-03f49502391a45e4b021c332dc9f38a05087b84a.tar.gz rust-03f49502391a45e4b021c332dc9f38a05087b84a.zip | |
Auto merge of #30734 - tsion:mir-pretty, r=nikomatsakis
* Put `const` in front of every `ConstVal`.
* Pretty-print bytestrings as they appear in Rust source.
* Pretty-print `ConstVal::{Struct, Tuple, Array, Repeat}` by pretty-printing the `ast::NodeId`. This is a temporary measure, and probably not perfect, but I'm avoiding anything more complex since I hear the const evaluator might not be AST-based in the near future.
```rust
struct Point {
x: i32,
y: i32,
}
fn consts() {
let _float = 3.14159;
let _non_const_int = -42;
const INT: i32 = -42;
let _int = INT;
let _uint = 42u32;
let _str = "a string";
let _bytestr = b"a bytes\xFF\n\ttri\'\"\\ng";
let _bool = true;
const STRUCT: Point = Point { x: 42, y: 42 };
let _struct = STRUCT;
const EXTERNAL_STRUCT: std::sync::atomic::AtomicUsize = std::sync::atomic::ATOMIC_USIZE_INIT;
let _external_struct = EXTERNAL_STRUCT;
const TUPLE: (i32, &'static str, &'static [u8; 5]) = (1, "two", b"three");
let _tuple = TUPLE;
const FUNC: fn() = consts;
let _function = FUNC;
let _non_const_function = consts;
const ARRAY: [&'static str; 3] = ["a", "b", "c"];
let _array = ARRAY;
const REPEAT: [&'static [u8; 3]; 10] = [b"foo"; 10];
let _repeat = REPEAT;
}
```
```diff
--- consts-old.mir 2016-01-05 23:23:14.163807017 -0600
+++ consts-new.mir 2016-01-05 23:04:51.121386151 -0600
@@ -1,45 +1,45 @@
fn() -> () {
let var0: f64; // _float
let var1: i32; // _non_const_int
let var2: i32; // _int
let var3: u32; // _uint
let var4: &str; // _str
let var5: &[u8; 18]; // _bytestr
let var6: bool; // _bool
let var7: Point; // _struct
let var8: core::sync::atomic::AtomicUsize; // _external_struct
let var9: (i32, &str, &[u8; 5]); // _tuple
let var10: fn(); // _function
let var11: fn() {consts}; // _non_const_function
let var12: [&str; 3]; // _array
let var13: [&[u8; 3]; 10]; // _repeat
let mut tmp0: ();
bb0: {
- var0 = 3.14159;
- var1 = Neg(42);
- var2 = -42;
- var3 = 42;
- var4 = Str("a string");
- var5 = ByteStr[97, 32, 98, 121, 116, 101, 115, 255, 10, 9, 116, 114, 105, 39, 34, 92, 110, 103];
- var6 = true;
- var7 = Struct(51);
+ var0 = const 3.14159;
+ var1 = Neg(const 42);
+ var2 = const -42;
+ var3 = const 42;
+ var4 = const "a string";
+ var5 = const b"a bytes\xff\n\ttri\'\"\\ng";
+ var6 = const true;
+ var7 = const expr Point{x: 42, y: 42,};
var8 = consts::EXTERNAL_STRUCT;
- var9 = Tuple(78);
- var10 = Function(DefId { krate: 0, node: DefIndex(7) => consts });
+ var9 = const expr (1, "two", b"three");
+ var10 = const consts;
var11 = consts;
- var12 = Array(105, 3);
- var13 = Repeat(122, 10);
+ var12 = const expr ["a", "b", "c"];
+ var13 = const expr [b"foo"; 10];
drop var8;
drop var7;
goto -> bb1;
}
bb1: {
return;
}
bb2: {
diverge;
}
}
```
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
