Skip to content

Commit 19dc634

Browse files
committed
---
yaml --- r: 234415 b: refs/heads/tmp c: 5441ad6 h: refs/heads/master i: 234413: 4e5f840 234411: 0dd2747 234407: 5b59ab4 234399: 825f8be v: v3
1 parent 531d5a3 commit 19dc634

Some content is hidden

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

63 files changed

+180
-6442
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
2626
refs/heads/beta: d2e13e822a73e0ea46ae9e21afdd3155fc997f6d
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28-
refs/heads/tmp: a7f4a8e50da5525ff44fd61fb2c8f67e92eb072d
28+
refs/heads/tmp: 5441ad6b9d944d0e625bed87e1e3ff169a268390
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: ab792abf1fcc28afbd315426213f6428da25c085
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828

branches/tmp/mk/crates.mk

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ TARGET_CRATES := libc std flate arena term \
5454
log graphviz core rbml alloc \
5555
rustc_unicode rustc_bitflags \
5656
alloc_system
57-
RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_driver \
57+
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
5858
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
5959
rustc_data_structures rustc_front rustc_platform_intrinsics
6060
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros
@@ -70,12 +70,11 @@ DEPS_std := core libc rand alloc collections rustc_unicode \
7070
DEPS_graphviz := std
7171
DEPS_syntax := std term serialize log fmt_macros arena libc rustc_bitflags
7272
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
73-
rustc_typeck rustc_mir rustc_resolve log syntax serialize rustc_llvm \
73+
rustc_typeck rustc_resolve log syntax serialize rustc_llvm \
7474
rustc_trans rustc_privacy rustc_lint rustc_front
7575

7676
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
7777
log syntax serialize rustc_llvm rustc_front rustc_platform_intrinsics
78-
DEPS_rustc_mir := rustc rustc_front syntax
7978
DEPS_rustc_typeck := rustc syntax rustc_front rustc_platform_intrinsics
8079
DEPS_rustc_borrowck := rustc rustc_front log graphviz syntax
8180
DEPS_rustc_resolve := rustc rustc_front log syntax

branches/tmp/mk/main.mk

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -172,18 +172,6 @@ RUST_LIB_FLAGS_ST3 += -C prefer-dynamic
172172
# by not emitting them.
173173
RUSTFLAGS_STAGE0 += -Z no-landing-pads
174174

175-
# Enable MIR to "always build" for crates where this works. This is
176-
# just temporary while MIR is being actively built up -- it's just a
177-
# poor man's unit testing infrastructure. Anyway we only want this for
178-
# stage1/stage2.
179-
define ADD_MIR_FLAG
180-
RUSTFLAGS1_$(1) += -Z always-build-mir
181-
RUSTFLAGS2_$(1) += -Z always-build-mir
182-
endef
183-
$(foreach crate,$(TARGET_CRATES),$(eval $(call ADD_MIR_FLAG,$(crate))))
184-
$(foreach crate,$(RUSTC_CRATES),$(eval $(call ADD_MIR_FLAG,$(crate))))
185-
$(foreach crate,$(HOST_CRATES),$(eval $(call ADD_MIR_FLAG,$(crate))))
186-
187175
# platform-specific auto-configuration
188176
include $(CFG_SRC_DIR)mk/platform.mk
189177

branches/tmp/mk/target.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
9393
$$(LLVM_LIBDIR_RUSTFLAGS_$(2)) \
9494
$$(LLVM_STDCPP_RUSTFLAGS_$(2)) \
9595
$$(RUSTFLAGS_$(4)) \
96-
$$(RUSTFLAGS$(1)_$(4)) \
9796
$$(RUSTFLAGS$(1)_$(4)_T_$(2)) \
9897
--out-dir $$(@D) \
9998
-C extra-filename=-$$(CFG_FILENAME_EXTRA) \

branches/tmp/src/doc/index.md

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,13 @@ series of small examples.
2020

2121
[rbe]: http://rustbyexample.com/
2222

23-
# Language Reference
24-
25-
Rust does not have an exact specification yet, but an effort to describe as much of
26-
the language in as much detail as possible is in [the reference](reference.html).
27-
28-
# Standard Library Reference
23+
# The Standard Library
2924

3025
We have [API documentation for the entire standard
3126
library](std/index.html). There's a list of crates on the left with more
3227
specific sections, or you can use the search bar at the top to search for
3328
something if you know its name.
3429

35-
# Tools
36-
37-
[Cargo](https://crates.io) is the Rust's package manager providing access to libraries
38-
beyond the standard one, and its website contains lots of good documentation.
39-
40-
[`rustdoc`](book/documentation.html) is the Rust's documentation generator, a tool converting
41-
annotated source code into HTML docs.
42-
43-
A bunch of non-official tools are available, such as [Racer](https://github.com/phildawes/racer)
44-
(code completion engine), or [rustfmt](https://github.com/nrc/rustfmt) (source code formatter),
45-
or text editor plugins.
46-
4730
# Community & Getting Help
4831

4932
If you need help with something, or just want to talk about Rust with others,
@@ -71,10 +54,25 @@ There is an active [subreddit](https://reddit.com/r/rust) with lots of
7154
discussion and news about Rust.
7255

7356
There is also a [user forum](https://users.rust-lang.org), for all
74-
user-oriented discussion, and a [developer
57+
user-oriented discussion, and a [developer
7558
forum](https://internals.rust-lang.org/), where the development of Rust
7659
itself is discussed.
7760

61+
# Specification
62+
63+
Rust does not have an exact specification, but an effort to describe as much of
64+
the language in as much detail as possible is in [the reference](reference.html).
65+
66+
# Tools
67+
68+
Rust is still a young language, so there isn't a ton of tooling yet, but the
69+
tools we have are really nice.
70+
71+
[Cargo](https://crates.io) is Rust's package manager, and its website contains
72+
lots of good documentation.
73+
74+
[`rustdoc`](book/documentation.html) is used to generate documentation for Rust code.
75+
7876
# FAQs
7977

8078
There are questions that are asked quite often, so we've made FAQs for them:

branches/tmp/src/doc/nomicon/vec-drain.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,14 @@ impl<'a, T> Drop for Drain<'a, T> {
129129
130130
impl<T> Vec<T> {
131131
pub fn drain(&mut self) -> Drain<T> {
132-
unsafe {
133-
let iter = RawValIter::new(&self);
134-
135-
// this is a mem::forget safety thing. If Drain is forgotten, we just
136-
// leak the whole Vec's contents. Also we need to do this *eventually*
137-
// anyway, so why not do it now?
138-
self.len = 0;
132+
// this is a mem::forget safety thing. If Drain is forgotten, we just
133+
// leak the whole Vec's contents. Also we need to do this eventually
134+
// anyway, so why not do it now?
135+
self.len = 0;
139136
137+
unsafe {
140138
Drain {
141-
iter: iter,
139+
iter: RawValIter::new(&self),
142140
vec: PhantomData,
143141
}
144142
}

branches/tmp/src/doc/nomicon/vec-final.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,13 @@ impl<T> Vec<T> {
155155
}
156156

157157
pub fn drain(&mut self) -> Drain<T> {
158+
// this is a mem::forget safety thing. If this is forgotten, we just
159+
// leak the whole Vec's contents. Also we need to do this *eventually*
160+
// anyway, so why not do it now?
161+
self.len = 0;
158162
unsafe {
159-
let iter = RawValIter::new(&self);
160-
161-
// this is a mem::forget safety thing. If Drain is forgotten, we just
162-
// leak the whole Vec's contents. Also we need to do this *eventually*
163-
// anyway, so why not do it now?
164-
self.len = 0;
165-
166163
Drain {
167-
iter: iter,
164+
iter: RawValIter::new(&self),
168165
vec: PhantomData,
169166
}
170167
}

branches/tmp/src/doc/trpl/advanced-linking.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ formal `#[link(...)]` attribute on `extern` blocks instead.
3434

3535
# Static linking
3636

37-
Static linking refers to the process of creating output that contains all
38-
required libraries and so doesn't need libraries installed on every system where
37+
Static linking refers to the process of creating output that contain all
38+
required libraries and so don't need libraries installed on every system where
3939
you want to use your compiled project. Pure-Rust dependencies are statically
4040
linked by default so you can use created binaries and libraries without
4141
installing Rust everywhere. By contrast, native libraries

branches/tmp/src/libcollections/macros.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,6 @@
3232
/// Note that unlike array expressions this syntax supports all elements
3333
/// which implement `Clone` and the number of elements doesn't have to be
3434
/// a constant.
35-
///
36-
/// This will use `clone()` to duplicate an expression, so one should be careful
37-
/// using this with types having a nonstandard `Clone` implementation. For
38-
/// example, `vec![Rc::new(1); 5]` will create a vector of five references
39-
/// to the same boxed integer value, not five references pointing to independently
40-
/// boxed integers.
4135
#[cfg(not(test))]
4236
#[macro_export]
4337
#[stable(feature = "rust1", since = "1.0.0")]

branches/tmp/src/libcore/slice.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,10 @@ impl<T> SliceExt for [T] {
303303
fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
304304
let len = self.len();
305305
let ptr = self.as_mut_ptr();
306-
assert!(mid <= len);
306+
307307
unsafe {
308+
assert!(mid <= len);
309+
308310
(from_raw_parts_mut(ptr, mid),
309311
from_raw_parts_mut(ptr.offset(mid as isize), len - mid))
310312
}

branches/tmp/src/libgraphviz/lib.rs

Lines changed: 12 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -313,13 +313,6 @@ pub enum LabelText<'a> {
313313
/// are also the escape sequences `\l` which left-justifies the
314314
/// preceding line and `\r` which right-justifies it.
315315
EscStr(Cow<'a, str>),
316-
317-
/// This uses a graphviz [HTML string label][html]. The string is
318-
/// printed exactly as given, but between `<` and `>`. **No
319-
/// escaping is performed.**
320-
///
321-
/// [html]: http://www.graphviz.org/content/node-shapes#html
322-
HtmlStr(Cow<'a, str>),
323316
}
324317

325318
/// The style for a node or edge.
@@ -460,14 +453,6 @@ pub trait Labeller<'a,N,E> {
460453
/// is a valid DOT identifier.
461454
fn node_id(&'a self, n: &N) -> Id<'a>;
462455

463-
/// Maps `n` to one of the [graphviz `shape` names][1]. If `None`
464-
/// is returned, no `shape` attribute is specified.
465-
///
466-
/// [1]: http://www.graphviz.org/content/node-shapes
467-
fn node_shape(&'a self, _node: &N) -> Option<LabelText<'a>> {
468-
None
469-
}
470-
471456
/// Maps `n` to a label that will be used in the rendered output.
472457
/// The label need not be unique, and may be the empty string; the
473458
/// default is just the output from `node_id`.
@@ -494,16 +479,6 @@ pub trait Labeller<'a,N,E> {
494479
}
495480
}
496481

497-
/// Escape tags in such a way that it is suitable for inclusion in a
498-
/// Graphviz HTML label.
499-
pub fn escape_html(s: &str) -> String {
500-
s
501-
.replace("&", "&amp;")
502-
.replace("\"", "&quot;")
503-
.replace("<", "&lt;")
504-
.replace(">", "&gt;")
505-
}
506-
507482
impl<'a> LabelText<'a> {
508483
pub fn label<S:IntoCow<'a, str>>(s: S) -> LabelText<'a> {
509484
LabelStr(s.into_cow())
@@ -513,10 +488,6 @@ impl<'a> LabelText<'a> {
513488
EscStr(s.into_cow())
514489
}
515490

516-
pub fn html<S:IntoCow<'a, str>>(s: S) -> LabelText<'a> {
517-
HtmlStr(s.into_cow())
518-
}
519-
520491
fn escape_char<F>(c: char, mut f: F) where F: FnMut(char) {
521492
match c {
522493
// not escaping \\, since Graphviz escString needs to
@@ -534,12 +505,10 @@ impl<'a> LabelText<'a> {
534505
}
535506

536507
/// Renders text as string suitable for a label in a .dot file.
537-
/// This includes quotes or suitable delimeters.
538-
pub fn to_dot_string(&self) -> String {
508+
pub fn escape(&self) -> String {
539509
match self {
540-
&LabelStr(ref s) => format!("\"{}\"", s.escape_default()),
541-
&EscStr(ref s) => format!("\"{}\"", LabelText::escape_str(&s[..])),
542-
&HtmlStr(ref s) => format!("<{}>", s),
510+
&LabelStr(ref s) => s.escape_default(),
511+
&EscStr(ref s) => LabelText::escape_str(&s[..]),
543512
}
544513
}
545514

@@ -555,7 +524,6 @@ impl<'a> LabelText<'a> {
555524
} else {
556525
s
557526
},
558-
HtmlStr(s) => s,
559527
}
560528
}
561529

@@ -644,15 +612,14 @@ pub fn render_opts<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N
644612
try!(indent(w));
645613
let id = g.node_id(n);
646614

647-
let escaped = &g.node_label(n).to_dot_string();
648-
let shape;
615+
let escaped = &g.node_label(n).escape();
649616

650617
let mut text = vec![id.as_slice()];
651618

652619
if !options.contains(&RenderOption::NoNodeLabels) {
653-
text.push("[label=");
620+
text.push("[label=\"");
654621
text.push(escaped);
655-
text.push("]");
622+
text.push("\"]");
656623
}
657624

658625
let style = g.node_style(n);
@@ -662,19 +629,12 @@ pub fn render_opts<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N
662629
text.push("\"]");
663630
}
664631

665-
if let Some(s) = g.node_shape(n) {
666-
shape = s.to_dot_string();
667-
text.push("[shape=");
668-
text.push(&shape);
669-
text.push("]");
670-
}
671-
672632
text.push(";");
673633
try!(writeln(w, &text));
674634
}
675635

676636
for e in g.edges().iter() {
677-
let escaped_label = &g.edge_label(e).to_dot_string();
637+
let escaped_label = &g.edge_label(e).escape();
678638
try!(indent(w));
679639
let source = g.source(e);
680640
let target = g.target(e);
@@ -684,9 +644,9 @@ pub fn render_opts<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N
684644
let mut text = vec![source_id.as_slice(), " -> ", target_id.as_slice()];
685645

686646
if !options.contains(&RenderOption::NoEdgeLabels) {
687-
text.push("[label=");
647+
text.push("[label=\"");
688648
text.push(escaped_label);
689-
text.push("]");
649+
text.push("\"]");
690650
}
691651

692652
let style = g.edge_style(e);
@@ -707,7 +667,7 @@ pub fn render_opts<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N
707667
mod tests {
708668
use self::NodeLabels::*;
709669
use super::{Id, Labeller, Nodes, Edges, GraphWalk, render, Style};
710-
use super::LabelText::{self, LabelStr, EscStr, HtmlStr};
670+
use super::LabelText::{self, LabelStr, EscStr};
711671
use std::io;
712672
use std::io::prelude::*;
713673
use std::borrow::IntoCow;
@@ -845,12 +805,12 @@ mod tests {
845805
fn node_id(&'a self, n: &Node) -> Id<'a> { self.graph.node_id(n) }
846806
fn node_label(&'a self, n: &Node) -> LabelText<'a> {
847807
match self.graph.node_label(n) {
848-
LabelStr(s) | EscStr(s) | HtmlStr(s) => EscStr(s),
808+
LabelStr(s) | EscStr(s) => EscStr(s),
849809
}
850810
}
851811
fn edge_label(&'a self, e: & &'a Edge) -> LabelText<'a> {
852812
match self.graph.edge_label(e) {
853-
LabelStr(s) | EscStr(s) | HtmlStr(s) => EscStr(s),
813+
LabelStr(s) | EscStr(s) => EscStr(s),
854814
}
855815
}
856816
}

branches/tmp/src/librustc/middle/astencode.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,8 +470,8 @@ impl tr for def::Def {
470470
def::DefPrimTy(p) => def::DefPrimTy(p),
471471
def::DefTyParam(s, index, def_id, n) => def::DefTyParam(s, index, def_id.tr(dcx), n),
472472
def::DefUse(did) => def::DefUse(did.tr(dcx)),
473-
def::DefUpvar(nid1, index, nid2) => {
474-
def::DefUpvar(dcx.tr_id(nid1), index, dcx.tr_id(nid2))
473+
def::DefUpvar(nid1, nid2) => {
474+
def::DefUpvar(dcx.tr_id(nid1), dcx.tr_id(nid2))
475475
}
476476
def::DefStruct(did) => def::DefStruct(did.tr(dcx)),
477477
def::DefRegion(nid) => def::DefRegion(dcx.tr_id(nid)),

branches/tmp/src/librustc/middle/def.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ pub enum Def {
3838
DefTyParam(ParamSpace, u32, DefId, ast::Name),
3939
DefUse(DefId),
4040
DefUpvar(ast::NodeId, // id of closed over local
41-
usize, // index in the freevars list of the closure
4241
ast::NodeId), // expr node that creates the closure
4342

4443
/// Note that if it's a tuple struct's definition, the node id of the DefId
@@ -130,7 +129,7 @@ impl Def {
130129
id
131130
}
132131
DefLocal(id) |
133-
DefUpvar(id, _, _) |
132+
DefUpvar(id, _) |
134133
DefRegion(id) |
135134
DefLabel(id) |
136135
DefSelfTy(_, Some((_, id))) => {

branches/tmp/src/librustc/middle/expr_use_visitor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ impl OverloadedCallType {
246246
pub struct ExprUseVisitor<'d, 't, 'a: 't, 'tcx:'a+'d+'t> {
247247
typer: &'t infer::InferCtxt<'a, 'tcx>,
248248
mc: mc::MemCategorizationContext<'t, 'a, 'tcx>,
249-
delegate: &'d mut Delegate<'tcx>,
249+
delegate: &'d mut (Delegate<'tcx>+'d),
250250
}
251251

252252
// If the TYPER results in an error, it's because the type check

0 commit comments

Comments
 (0)