Skip to content

Commit 8bc43ed

Browse files
committed
Auto merge of #29929 - michaelwoerister:mir-repr-to-librustc, r=nikomatsakis
This is done mostly so that we can refer to MIR types in csearch and other metadata related area. Heads up, @rust-lang/compiler! r? @nikomatsakis
2 parents fd2626c + f28a4e9 commit 8bc43ed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+73
-64
lines changed

src/librustc/lib.rs

+6
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,12 @@ pub mod middle {
136136
pub mod weak_lang_items;
137137
}
138138

139+
pub mod mir {
140+
pub mod repr;
141+
pub mod tcx;
142+
pub mod visit;
143+
}
144+
139145
pub mod session;
140146

141147
pub mod lint;

src/librustc_mir/repr.rs renamed to src/librustc/mir/repr.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc::middle::const_eval::ConstVal;
12-
use rustc::middle::def_id::DefId;
13-
use rustc::middle::subst::Substs;
14-
use rustc::middle::ty::{AdtDef, ClosureSubsts, FnOutput, Region, Ty};
11+
use middle::const_eval::ConstVal;
12+
use middle::def_id::DefId;
13+
use middle::subst::Substs;
14+
use middle::ty::{AdtDef, ClosureSubsts, FnOutput, Region, Ty};
1515
use rustc_back::slice;
1616
use rustc_front::hir::InlineAsm;
1717
use syntax::ast::Name;

src/librustc_mir/tcx/mod.rs renamed to src/librustc/mir/tcx.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
* building is complete.
1414
*/
1515

16-
use repr::*;
17-
use rustc::middle::subst::Substs;
18-
use rustc::middle::ty::{self, AdtDef, Ty};
16+
use mir::repr::*;
17+
use middle::subst::Substs;
18+
use middle::ty::{self, AdtDef, Ty};
1919
use rustc_front::hir;
2020

2121
#[derive(Copy, Clone, Debug)]

src/librustc_mir/visit.rs renamed to src/librustc/mir/visit.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc::middle::ty::Region;
12-
use repr::*;
11+
use middle::ty::Region;
12+
use mir::repr::*;
1313

1414
pub trait Visitor<'tcx> {
1515
// Override these, and call `self.super_xxx` to revert back to the

src/librustc_mir/build/block.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
use build::{BlockAnd, Builder};
1212
use hair::*;
13-
use repr::*;
13+
use rustc::mir::repr::*;
1414
use rustc_front::hir;
1515

1616
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/cfg.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//! Routines for manipulating the control-flow graph.
1515
1616
use build::CFG;
17-
use repr::*;
17+
use rustc::mir::repr::*;
1818
use syntax::codemap::Span;
1919

2020
impl<'tcx> CFG<'tcx> {

src/librustc_mir/build/expr/as_constant.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
1313
use build::Builder;
1414
use hair::*;
15-
use repr::*;
15+
use rustc::mir::repr::*;
1616

1717
impl<'a,'tcx> Builder<'a,'tcx> {
1818
/// Compile `expr`, yielding a compile-time constant. Assumes that

src/librustc_mir/build/expr/as_lvalue.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::Category;
1515
use hair::*;
16-
use repr::*;
16+
use rustc::mir::repr::*;
1717

1818
impl<'a,'tcx> Builder<'a,'tcx> {
1919
/// Compile `expr`, yielding an lvalue that we can move from etc.

src/librustc_mir/build/expr/as_operand.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::Category;
1515
use hair::*;
16-
use repr::*;
16+
use rustc::mir::repr::*;
1717

1818
impl<'a,'tcx> Builder<'a,'tcx> {
1919
/// Compile `expr` into a value that can be used as an operand.

src/librustc_mir/build/expr/as_rvalue.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
1313
use rustc_data_structures::fnv::FnvHashMap;
1414

15-
use build::{BlockAnd, Builder};
15+
use build::{BlockAnd, BlockAndExtension, Builder};
1616
use build::expr::category::{Category, RvalueFunc};
1717
use hair::*;
18-
use repr::*;
18+
use rustc::mir::repr::*;
1919

2020
impl<'a,'tcx> Builder<'a,'tcx> {
2121
/// Compile `expr`, yielding an rvalue.

src/librustc_mir/build/expr/as_temp.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::Category;
1515
use hair::*;
16-
use repr::*;
16+
use rustc::mir::repr::*;
1717

1818
impl<'a,'tcx> Builder<'a,'tcx> {
1919
/// Compile `expr` into a fresh temporary. This is used when building

src/librustc_mir/build/expr/into.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::{Category, RvalueFunc};
1515
use build::scope::LoopScope;
1616
use hair::*;
17-
use repr::*;
1817
use rustc::middle::region::CodeExtent;
18+
use rustc::mir::repr::*;
1919
use syntax::codemap::Span;
2020

2121
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/into.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
//! wrapped up as expressions (e.g. blocks). To make this ergonomic, we use this
1515
//! latter `EvalInto` trait.
1616
17-
use build::{BlockAnd, Builder};
17+
use build::{BlockAnd, BlockAndExtension, Builder};
1818
use hair::*;
19-
use repr::*;
19+
use rustc::mir::repr::*;
2020

2121
pub trait EvalInto<'tcx> {
2222
fn eval_into<'a>(self,

src/librustc_mir/build/matches/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
//! includes the high-level algorithm, the submodules contain the
1414
//! details.
1515
16-
use build::{BlockAnd, Builder};
17-
use repr::*;
16+
use build::{BlockAnd, BlockAndExtension, Builder};
1817
use rustc_data_structures::fnv::FnvHashMap;
1918
use rustc::middle::const_eval::ConstVal;
2019
use rustc::middle::region::CodeExtent;
2120
use rustc::middle::ty::{AdtDef, Ty};
21+
use rustc::mir::repr::*;
2222
use hair::*;
2323
use syntax::ast::{Name, NodeId};
2424
use syntax::codemap::Span;

src/librustc_mir/build/matches/simplify.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
//! sort of test: for example, testing which variant an enum is, or
2323
//! testing a value against a constant.
2424
25-
use build::{BlockAnd, Builder};
25+
use build::{BlockAnd, BlockAndExtension, Builder};
2626
use build::matches::{Binding, MatchPair, Candidate};
2727
use hair::*;
28-
use repr::*;
28+
use rustc::mir::repr::*;
2929

3030
use std::mem;
3131

src/librustc_mir/build/matches/test.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
use build::Builder;
1919
use build::matches::{Candidate, MatchPair, Test, TestKind};
2020
use hair::*;
21-
use repr::*;
2221
use rustc_data_structures::fnv::FnvHashMap;
2322
use rustc::middle::const_eval::ConstVal;
2423
use rustc::middle::ty::{self, Ty};
24+
use rustc::mir::repr::*;
2525
use syntax::codemap::Span;
2626

2727
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/matches/util.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use build::{BlockAnd, Builder};
11+
use build::{BlockAnd, BlockAndExtension, Builder};
1212
use build::matches::MatchPair;
1313
use hair::*;
14-
use repr::*;
14+
use rustc::mir::repr::*;
1515
use std::u32;
1616

1717
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/misc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
1414
use build::Builder;
1515
use hair::*;
16-
use repr::*;
1716
use rustc::middle::ty::Ty;
17+
use rustc::mir::repr::*;
1818
use std::u32;
1919
use syntax::codemap::Span;
2020

src/librustc_mir/build/mod.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111
use hair::cx::Cx;
1212
use rustc::middle::region::CodeExtent;
1313
use rustc::middle::ty::{FnOutput, Ty};
14+
use rustc::mir::repr::*;
1415
use rustc_data_structures::fnv::FnvHashMap;
1516
use rustc_front::hir;
16-
use repr::*;
17+
1718
use syntax::ast;
1819
use syntax::codemap::Span;
1920

@@ -41,7 +42,12 @@ struct CFG<'tcx> {
4142
#[must_use] // if you don't use one of these results, you're leaving a dangling edge
4243
struct BlockAnd<T>(BasicBlock, T);
4344

44-
impl BasicBlock {
45+
trait BlockAndExtension {
46+
fn and<T>(self, v: T) -> BlockAnd<T>;
47+
fn unit(self) -> BlockAnd<()>;
48+
}
49+
50+
impl BlockAndExtension for BasicBlock {
4551
fn and<T>(self, v: T) -> BlockAnd<T> {
4652
BlockAnd(self, v)
4753
}

src/librustc_mir/build/scope.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ should go to.
8686
8787
*/
8888

89-
use build::{BlockAnd, Builder, CFG};
90-
use repr::*;
89+
use build::{BlockAnd, BlockAndExtension, Builder, CFG};
9190
use rustc::middle::region::CodeExtent;
9291
use rustc::middle::ty::Ty;
92+
use rustc::mir::repr::*;
9393
use syntax::codemap::Span;
9494

9595
pub struct Scope<'tcx> {

src/librustc_mir/build/stmt.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use build::{BlockAnd, Builder};
11+
use build::{BlockAnd, BlockAndExtension, Builder};
1212
use hair::*;
13-
use repr::*;
13+
use rustc::mir::repr::*;
1414

1515
impl<'a,'tcx> Builder<'a,'tcx> {
1616
pub fn stmts(&mut self, mut block: BasicBlock, stmts: Vec<StmtRef<'tcx>>) -> BlockAnd<()> {

src/librustc_mir/graphviz/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// except according to those terms.
1010

1111
use dot;
12-
use repr::*;
12+
use rustc::mir::repr::*;
1313
use std::borrow::IntoCow;
1414

1515
#[derive(Copy, Clone, PartialEq, Eq)]

src/librustc_mir/hair/cx/expr.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
// except according to those terms.
1010

1111
use hair::*;
12-
use repr::*;
1312
use rustc_data_structures::fnv::FnvHashMap;
1413
use hair::cx::Cx;
1514
use hair::cx::block;
@@ -19,6 +18,7 @@ use rustc::middle::def;
1918
use rustc::middle::region::CodeExtent;
2019
use rustc::middle::pat_util;
2120
use rustc::middle::ty::{self, VariantDef, Ty};
21+
use rustc::mir::repr::*;
2222
use rustc_front::hir;
2323
use rustc_front::util as hir_util;
2424
use syntax::ext::mtwt;

src/librustc_mir/hair/cx/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717

1818
use hair::*;
19-
use repr::*;
19+
use rustc::mir::repr::*;
2020

2121
use rustc::middle::const_eval::{self, ConstVal};
2222
use rustc::middle::def_id::DefId;

src/librustc_mir/hair/cx/pattern.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
use hair::*;
1212
use hair::cx::Cx;
13-
use repr::*;
1413
use rustc_data_structures::fnv::FnvHashMap;
1514
use rustc::middle::const_eval;
1615
use rustc::middle::def;
1716
use rustc::middle::pat_util::{pat_is_resolved_const, pat_is_binding};
1817
use rustc::middle::subst::Substs;
1918
use rustc::middle::ty::{self, Ty};
19+
use rustc::mir::repr::*;
2020
use rustc_front::hir;
2121
use syntax::ast;
2222
use syntax::ext::mtwt;

src/librustc_mir/hair/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//! unit-tested and separated from the Rust source and compiler data
1515
//! structures.
1616
17-
use repr::{BinOp, BorrowKind, Field, Literal, Mutability, UnOp};
17+
use rustc::mir::repr::{BinOp, BorrowKind, Field, Literal, Mutability, UnOp};
1818
use rustc::middle::def_id::DefId;
1919
use rustc::middle::region::CodeExtent;
2020
use rustc::middle::subst::Substs;

src/librustc_mir/lib.rs

-3
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ extern crate syntax;
3232
pub mod build;
3333
pub mod mir_map;
3434
mod hair;
35-
pub mod repr;
3635
mod graphviz;
3736
pub mod transform;
38-
pub mod tcx;
39-
pub mod visit;
4037

src/librustc_mir/mir_map.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extern crate rustc_front;
2323
use build;
2424
use dot;
2525
use transform::*;
26-
use repr::Mir;
26+
use rustc::mir::repr::Mir;
2727
use hair::cx::Cx;
2828
use std::fs::File;
2929

src/librustc_mir/transform/erase_regions.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
//! We want to do this once just before trans, so trans does not have to take
1313
//! care erasing regions all over the place.
1414
15-
use repr::*;
1615
use rustc::middle::ty;
16+
use rustc::mir::repr::*;
1717
use transform::MirPass;
1818
use mir_map::MirMap;
1919

src/librustc_mir/transform/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub mod simplify_cfg;
1212
pub mod erase_regions;
1313
mod util;
1414

15-
use repr::Mir;
15+
use rustc::mir::repr::Mir;
1616

1717
pub trait MirPass<'tcx> {
1818
fn run_on_mir(&mut self, mir: &mut Mir<'tcx>);

src/librustc_mir/transform/simplify_cfg.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use repr::*;
1211
use rustc::middle::const_eval::ConstVal;
12+
use rustc::mir::repr::*;
1313
use std::mem;
1414
use transform::util;
1515
use transform::MirPass;

src/librustc_mir/transform/util.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use repr::*;
11+
use rustc::mir::repr::*;
1212

1313
/// Update basic block ids in all terminators using the given replacements,
1414
/// useful e.g. after removal of several basic blocks to update all terminators

0 commit comments

Comments
 (0)