Skip to content

Commit 154fec4

Browse files
committed
---
yaml --- r: 67307 b: refs/heads/master c: e0685e2 h: refs/heads/master i: 67305: fab8752 67303: 9bc822d v: v3
1 parent af8461b commit 154fec4

32 files changed

+664
-814
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 906264b50fa6b69eed567388063233bd279242b1
2+
refs/heads/master: e0685e22a3a7a5735f635bd28bdcb5084dd5be34
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 18e3db7392d2d0697b7e27d6d986139960144d85
55
refs/heads/try: 7b78b52e602bb3ea8174f9b2006bff3315f03ef9

trunk/mk/tests.mk

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -537,10 +537,6 @@ TEST_SREQ$(1)_T_$(2)_H_$(3) = \
537537

538538
# Rules for the cfail/rfail/rpass/bench/perf test runner
539539

540-
# The tests select when to use debug configuration on their own;
541-
# remove directive, if present, from CFG_RUSTC_FLAGS (issue #7898).
542-
CTEST_RUSTC_FLAGS = $$(subst --cfg debug,,$$(CFG_RUSTC_FLAGS))
543-
544540
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
545541
--compile-lib-path $$(HLIB$(1)_H_$(3)) \
546542
--run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \
@@ -552,7 +548,7 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
552548
--target $(2) \
553549
--adb-path=$(CFG_ADB) \
554550
--adb-test-dir=$(CFG_ADB_TEST_DIR) \
555-
--rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) --target=$(2)" \
551+
--rustcflags "$(RUSTC_FLAGS_$(2)) $$(CFG_RUSTC_FLAGS) --target=$(2)" \
556552
$$(CTEST_TESTARGS)
557553

558554
CTEST_DEPS_rpass_$(1)-T-$(2)-H-$(3) = $$(RPASS_TESTS)

trunk/src/libextra/num/bigint.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -732,11 +732,6 @@ impl Ord for Sign {
732732
}
733733
}
734734

735-
impl TotalEq for Sign {
736-
fn equals(&self, other: &Sign) -> bool {
737-
*self == *other
738-
}
739-
}
740735
impl TotalOrd for Sign {
741736

742737
fn cmp(&self, other: &Sign) -> Ordering {

trunk/src/libextra/num/rational.rs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -110,25 +110,6 @@ cmp_impl!(impl TotalEq, equals)
110110
cmp_impl!(impl Ord, lt, gt, le, ge)
111111
cmp_impl!(impl TotalOrd, cmp -> cmp::Ordering)
112112

113-
impl<T: Clone + Integer + Ord> Orderable for Ratio<T> {
114-
#[inline]
115-
fn min(&self, other: &Ratio<T>) -> Ratio<T> {
116-
if *self < *other { self.clone() } else { other.clone() }
117-
}
118-
119-
#[inline]
120-
fn max(&self, other: &Ratio<T>) -> Ratio<T> {
121-
if *self > *other { self.clone() } else { other.clone() }
122-
}
123-
124-
#[inline]
125-
fn clamp(&self, mn: &Ratio<T>, mx: &Ratio<T>) -> Ratio<T> {
126-
if *self > *mx { mx.clone()} else
127-
if *self < *mn { mn.clone() } else { self.clone() }
128-
}
129-
}
130-
131-
132113
/* Arithmetic */
133114
// a/b * c/d = (a*c)/(b*d)
134115
impl<T: Clone + Integer + Ord>

trunk/src/librustc/metadata/common.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ pub static tag_misc_info: uint = 0x7f;
180180
pub static tag_misc_info_crate_items: uint = 0x80;
181181

182182
pub static tag_item_method_provided_source: uint = 0x81;
183-
pub static tag_item_impl_vtables: uint = 0x82;
184183

185184
pub struct LinkMeta {
186185
name: @str,

trunk/src/librustc/metadata/csearch.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use metadata::cstore;
1616
use metadata::decoder;
1717
use metadata;
1818
use middle::ty;
19-
use middle::typeck;
2019

2120
use std::vec;
2221
use reader = extra::ebml::reader;
@@ -217,14 +216,6 @@ pub fn get_impl_trait(tcx: ty::ctxt,
217216
decoder::get_impl_trait(cdata, def.node, tcx)
218217
}
219218

220-
// Given a def_id for an impl, return information about its vtables
221-
pub fn get_impl_vtables(tcx: ty::ctxt,
222-
def: ast::def_id) -> typeck::impl_res {
223-
let cstore = tcx.cstore;
224-
let cdata = cstore::get_crate_data(cstore, def.crate);
225-
decoder::get_impl_vtables(cdata, def.node, tcx)
226-
}
227-
228219
pub fn get_impl_method(cstore: @mut cstore::CStore,
229220
def: ast::def_id,
230221
mname: ast::ident)

trunk/src/librustc/metadata/decoder.rs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ use metadata::tydecode::{parse_ty_data, parse_def_id,
2121
parse_type_param_def_data,
2222
parse_bare_fn_ty_data, parse_trait_ref_data};
2323
use middle::ty;
24-
use middle::typeck;
25-
use middle::astencode::vtable_decoder_helpers;
26-
2724

2825
use std::hash::HashUtil;
2926
use std::uint;
@@ -413,21 +410,6 @@ pub fn get_impl_trait(cdata: cmd,
413410
}
414411
}
415412

416-
pub fn get_impl_vtables(cdata: cmd,
417-
id: ast::node_id,
418-
tcx: ty::ctxt) -> typeck::impl_res
419-
{
420-
let item_doc = lookup_item(id, cdata.data);
421-
let vtables_doc = reader::get_doc(item_doc, tag_item_impl_vtables);
422-
let mut decoder = reader::Decoder(vtables_doc);
423-
424-
typeck::impl_res {
425-
trait_vtables: decoder.read_vtable_res(tcx, cdata),
426-
self_vtables: decoder.read_vtable_param_res(tcx, cdata)
427-
}
428-
}
429-
430-
431413
pub fn get_impl_method(intr: @ident_interner, cdata: cmd, id: ast::node_id,
432414
name: ast::ident) -> Option<ast::def_id> {
433415
let items = reader::get_doc(reader::Doc(cdata.data), tag_items);

trunk/src/librustc/metadata/encoder.rs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ use metadata::decoder;
1717
use metadata::tyencode;
1818
use middle::ty::{node_id_to_type, lookup_item_type};
1919
use middle::ty;
20-
use middle::typeck;
21-
use middle::astencode;
2220
use middle;
2321

2422
use std::hash::HashUtil;
@@ -163,15 +161,6 @@ fn encode_trait_ref(ebml_w: &mut writer::Encoder,
163161
ebml_w.end_tag();
164162
}
165163

166-
fn encode_impl_vtables(ebml_w: &mut writer::Encoder,
167-
ecx: &EncodeContext,
168-
vtables: &typeck::impl_res) {
169-
ebml_w.start_tag(tag_item_impl_vtables);
170-
astencode::encode_vtable_res(ecx, ebml_w, vtables.trait_vtables);
171-
astencode::encode_vtable_param_res(ecx, ebml_w, vtables.self_vtables);
172-
ebml_w.end_tag();
173-
}
174-
175164
// Item info table encoding
176165
fn encode_family(ebml_w: &mut writer::Encoder, c: char) {
177166
ebml_w.start_tag(tag_items_data_item_family);
@@ -1019,8 +1008,6 @@ fn encode_info_for_item(ecx: &EncodeContext,
10191008
let trait_ref = ty::node_id_to_trait_ref(
10201009
tcx, ast_trait_ref.ref_id);
10211010
encode_trait_ref(ebml_w, ecx, trait_ref, tag_item_trait_ref);
1022-
let impl_vtables = ty::lookup_impl_vtables(tcx, def_id);
1023-
encode_impl_vtables(ebml_w, ecx, &impl_vtables);
10241011
}
10251012
encode_path(ecx, ebml_w, path, ast_map::path_name(item.ident));
10261013
ebml_w.end_tag();

trunk/src/librustc/middle/astencode.rs

Lines changed: 39 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -250,21 +250,13 @@ impl<S:serialize::Encoder> def_id_encoder_helpers for S {
250250

251251
trait def_id_decoder_helpers {
252252
fn read_def_id(&mut self, xcx: @ExtendedDecodeContext) -> ast::def_id;
253-
fn read_def_id_noxcx(&mut self,
254-
cdata: @cstore::crate_metadata) -> ast::def_id;
255253
}
256254

257255
impl<D:serialize::Decoder> def_id_decoder_helpers for D {
258256
fn read_def_id(&mut self, xcx: @ExtendedDecodeContext) -> ast::def_id {
259257
let did: ast::def_id = Decodable::decode(self);
260258
did.tr(xcx)
261259
}
262-
263-
fn read_def_id_noxcx(&mut self,
264-
cdata: @cstore::crate_metadata) -> ast::def_id {
265-
let did: ast::def_id = Decodable::decode(self);
266-
decoder::translate_def_id(cdata, did)
267-
}
268260
}
269261

270262
// ______________________________________________________________________
@@ -590,35 +582,34 @@ impl tr for method_origin {
590582
typeck::method_trait(did, m, vstore) => {
591583
typeck::method_trait(did.tr(xcx), m, vstore)
592584
}
585+
typeck::method_self(did, m) => {
586+
typeck::method_self(did.tr(xcx), m)
587+
}
588+
typeck::method_super(trait_did, m) => {
589+
typeck::method_super(trait_did.tr(xcx), m)
590+
}
593591
}
594592
}
595593
}
596594

597595
// ______________________________________________________________________
598596
// Encoding and decoding vtable_res
599597

600-
pub fn encode_vtable_res(ecx: &e::EncodeContext,
598+
fn encode_vtable_res(ecx: &e::EncodeContext,
601599
ebml_w: &mut writer::Encoder,
602600
dr: typeck::vtable_res) {
603601
// can't autogenerate this code because automatic code of
604602
// ty::t doesn't work, and there is no way (atm) to have
605603
// hand-written encoding routines combine with auto-generated
606604
// ones. perhaps we should fix this.
607605
do ebml_w.emit_from_vec(*dr) |ebml_w, param_tables| {
608-
encode_vtable_param_res(ecx, ebml_w, *param_tables);
609-
}
610-
}
611-
612-
pub fn encode_vtable_param_res(ecx: &e::EncodeContext,
613-
ebml_w: &mut writer::Encoder,
614-
param_tables: typeck::vtable_param_res) {
615-
do ebml_w.emit_from_vec(*param_tables) |ebml_w, vtable_origin| {
616-
encode_vtable_origin(ecx, ebml_w, vtable_origin)
606+
do ebml_w.emit_from_vec(**param_tables) |ebml_w, vtable_origin| {
607+
encode_vtable_origin(ecx, ebml_w, vtable_origin)
608+
}
617609
}
618610
}
619611

620-
621-
pub fn encode_vtable_origin(ecx: &e::EncodeContext,
612+
fn encode_vtable_origin(ecx: &e::EncodeContext,
622613
ebml_w: &mut writer::Encoder,
623614
vtable_origin: &typeck::vtable_origin) {
624615
do ebml_w.emit_enum("vtable_origin") |ebml_w| {
@@ -639,46 +630,40 @@ pub fn encode_vtable_origin(ecx: &e::EncodeContext,
639630
typeck::vtable_param(pn, bn) => {
640631
do ebml_w.emit_enum_variant("vtable_param", 1u, 2u) |ebml_w| {
641632
do ebml_w.emit_enum_variant_arg(0u) |ebml_w| {
642-
pn.encode(ebml_w);
633+
ebml_w.emit_uint(pn);
643634
}
644635
do ebml_w.emit_enum_variant_arg(1u) |ebml_w| {
645636
ebml_w.emit_uint(bn);
646637
}
647638
}
648639
}
640+
typeck::vtable_self(def_id) => {
641+
do ebml_w.emit_enum_variant("vtable_self", 2u, 1u) |ebml_w| {
642+
do ebml_w.emit_enum_variant_arg(0u) |ebml_w| {
643+
ebml_w.emit_def_id(def_id)
644+
}
645+
}
646+
}
649647
}
650648
}
651649
}
652650

653-
pub trait vtable_decoder_helpers {
654-
fn read_vtable_res(&mut self,
655-
tcx: ty::ctxt, cdata: @cstore::crate_metadata)
651+
trait vtable_decoder_helpers {
652+
fn read_vtable_res(&mut self, xcx: @ExtendedDecodeContext)
656653
-> typeck::vtable_res;
657-
fn read_vtable_param_res(&mut self,
658-
tcx: ty::ctxt, cdata: @cstore::crate_metadata)
659-
-> typeck::vtable_param_res;
660-
fn read_vtable_origin(&mut self,
661-
tcx: ty::ctxt, cdata: @cstore::crate_metadata)
654+
fn read_vtable_origin(&mut self, xcx: @ExtendedDecodeContext)
662655
-> typeck::vtable_origin;
663656
}
664657

665658
impl vtable_decoder_helpers for reader::Decoder {
666-
fn read_vtable_res(&mut self,
667-
tcx: ty::ctxt, cdata: @cstore::crate_metadata)
659+
fn read_vtable_res(&mut self, xcx: @ExtendedDecodeContext)
668660
-> typeck::vtable_res {
669661
@self.read_to_vec(|this|
670-
this.read_vtable_param_res(tcx, cdata))
662+
@this.read_to_vec(|this|
663+
this.read_vtable_origin(xcx)))
671664
}
672665

673-
fn read_vtable_param_res(&mut self,
674-
tcx: ty::ctxt, cdata: @cstore::crate_metadata)
675-
-> typeck::vtable_param_res {
676-
@self.read_to_vec(|this|
677-
this.read_vtable_origin(tcx, cdata))
678-
}
679-
680-
fn read_vtable_origin(&mut self,
681-
tcx: ty::ctxt, cdata: @cstore::crate_metadata)
666+
fn read_vtable_origin(&mut self, xcx: @ExtendedDecodeContext)
682667
-> typeck::vtable_origin {
683668
do self.read_enum("vtable_origin") |this| {
684669
do this.read_enum_variant(["vtable_static",
@@ -689,26 +674,33 @@ impl vtable_decoder_helpers for reader::Decoder {
689674
0 => {
690675
typeck::vtable_static(
691676
do this.read_enum_variant_arg(0u) |this| {
692-
this.read_def_id_noxcx(cdata)
677+
this.read_def_id(xcx)
693678
},
694679
do this.read_enum_variant_arg(1u) |this| {
695-
this.read_tys_noxcx(tcx, cdata)
680+
this.read_tys(xcx)
696681
},
697682
do this.read_enum_variant_arg(2u) |this| {
698-
this.read_vtable_res(tcx, cdata)
683+
this.read_vtable_res(xcx)
699684
}
700685
)
701686
}
702687
1 => {
703688
typeck::vtable_param(
704689
do this.read_enum_variant_arg(0u) |this| {
705-
Decodable::decode(this)
690+
this.read_uint()
706691
},
707692
do this.read_enum_variant_arg(1u) |this| {
708693
this.read_uint()
709694
}
710695
)
711696
}
697+
2 => {
698+
typeck::vtable_self(
699+
do this.read_enum_variant_arg(0u) |this| {
700+
this.read_def_id(xcx)
701+
}
702+
)
703+
}
712704
// hard to avoid - user input
713705
_ => fail!("bad enum variant")
714706
}
@@ -1003,35 +995,9 @@ trait ebml_decoder_decoder_helpers {
1003995
source: DefIdSource,
1004996
did: ast::def_id)
1005997
-> ast::def_id;
1006-
1007-
// Versions of the type reading functions that don't need the full
1008-
// ExtendedDecodeContext.
1009-
fn read_ty_noxcx(&mut self,
1010-
tcx: ty::ctxt, cdata: @cstore::crate_metadata) -> ty::t;
1011-
fn read_tys_noxcx(&mut self,
1012-
tcx: ty::ctxt,
1013-
cdata: @cstore::crate_metadata) -> ~[ty::t];
1014998
}
1015999

10161000
impl ebml_decoder_decoder_helpers for reader::Decoder {
1017-
fn read_ty_noxcx(&mut self,
1018-
tcx: ty::ctxt, cdata: @cstore::crate_metadata) -> ty::t {
1019-
do self.read_opaque |_, doc| {
1020-
tydecode::parse_ty_data(
1021-
*doc.data,
1022-
cdata.cnum,
1023-
doc.start,
1024-
tcx,
1025-
|_, id| decoder::translate_def_id(cdata, id))
1026-
}
1027-
}
1028-
1029-
fn read_tys_noxcx(&mut self,
1030-
tcx: ty::ctxt,
1031-
cdata: @cstore::crate_metadata) -> ~[ty::t] {
1032-
self.read_to_vec(|this| this.read_ty_noxcx(tcx, cdata) )
1033-
}
1034-
10351001
fn read_ty(&mut self, xcx: @ExtendedDecodeContext) -> ty::t {
10361002
// Note: regions types embed local node ids. In principle, we
10371003
// should translate these node ids into the new decode
@@ -1194,9 +1160,8 @@ fn decode_side_tables(xcx: @ExtendedDecodeContext,
11941160
val_dsr.read_method_map_entry(xcx));
11951161
}
11961162
c::tag_table_vtable_map => {
1197-
dcx.maps.vtable_map.insert(
1198-
id,
1199-
val_dsr.read_vtable_res(xcx.dcx.tcx, xcx.dcx.cdata));
1163+
dcx.maps.vtable_map.insert(id,
1164+
val_dsr.read_vtable_res(xcx));
12001165
}
12011166
c::tag_table_adjustments => {
12021167
let adj: @ty::AutoAdjustment = @Decodable::decode(val_dsr);

trunk/src/librustc/middle/privacy.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
use metadata::csearch;
1616
use middle::ty::{ty_struct, ty_enum};
1717
use middle::ty;
18-
use middle::typeck::{method_map, method_origin, method_param};
18+
use middle::typeck::{method_map, method_origin, method_param, method_self};
19+
use middle::typeck::{method_super};
1920
use middle::typeck::{method_static, method_trait};
2021

2122
use std::util::ignore;
@@ -290,7 +291,9 @@ pub fn check_crate<'mm>(tcx: ty::ctxt,
290291
method_num: method_num,
291292
_
292293
}) |
293-
method_trait(trait_id, method_num, _) => {
294+
method_trait(trait_id, method_num, _) |
295+
method_self(trait_id, method_num) |
296+
method_super(trait_id, method_num) => {
294297
if trait_id.crate == local_crate {
295298
match tcx.items.find(&trait_id.node) {
296299
Some(&node_item(item, _)) => {

0 commit comments

Comments
 (0)