From d809336d0f5f4efa11336878736aeefe1fbae895 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 16 Jul 2012 17:08:27 -0700 Subject: [PATCH] Fix reflection on vstore_fixed estrs and evecs. --- src/rustc/front/intrinsic.rs | 7 +++---- src/test/run-pass/issue-2930.rs | 4 ---- src/test/run-pass/reflect-visit-data.rs | 23 ++++++++++++----------- src/test/run-pass/reflect-visit-type.rs | 8 ++++---- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/src/rustc/front/intrinsic.rs b/src/rustc/front/intrinsic.rs index 7f2e11ecccd..b980aff822c 100644 --- a/src/rustc/front/intrinsic.rs +++ b/src/rustc/front/intrinsic.rs @@ -46,7 +46,7 @@ mod intrinsic { fn visit_estr_box() -> bool; fn visit_estr_uniq() -> bool; fn visit_estr_slice() -> bool; - fn visit_estr_fixed(sz: uint) -> bool; + fn visit_estr_fixed(n: uint, sz: uint, align: uint) -> bool; fn visit_box(mtbl: uint, inner: *tydesc) -> bool; fn visit_uniq(mtbl: uint, inner: *tydesc) -> bool; @@ -58,9 +58,8 @@ mod intrinsic { fn visit_evec_box(mtbl: uint, inner: *tydesc) -> bool; fn visit_evec_uniq(mtbl: uint, inner: *tydesc) -> bool; fn visit_evec_slice(mtbl: uint, inner: *tydesc) -> bool; - fn visit_evec_fixed(n: uint, mtbl: uint, - sz: uint, align: uint, - inner: *tydesc) -> bool; + fn visit_evec_fixed(n: uint, sz: uint, align: uint, + mtbl: uint, inner: *tydesc) -> bool; fn visit_enter_rec(n_fields: uint, sz: uint, align: uint) -> bool; diff --git a/src/test/run-pass/issue-2930.rs b/src/test/run-pass/issue-2930.rs index 67c8c2d970c..2e673f8fe13 100644 --- a/src/test/run-pass/issue-2930.rs +++ b/src/test/run-pass/issue-2930.rs @@ -1,7 +1,3 @@ -// xfail-pretty -// xfail-win32 -// xfail-test - // Generated from pipe compiler mod stream { fn init() -> (client::stream, server::stream) { diff --git a/src/test/run-pass/reflect-visit-data.rs b/src/test/run-pass/reflect-visit-data.rs index b654cf9bd19..2a45b257ee0 100644 --- a/src/test/run-pass/reflect-visit-data.rs +++ b/src/test/run-pass/reflect-visit-data.rs @@ -199,9 +199,11 @@ impl ptr_visitor true } - fn visit_estr_fixed(sz: uint) -> bool { - self.align_to::(); - if ! self.inner.visit_estr_fixed(sz) { ret false; } + fn visit_estr_fixed(n: uint, + sz: uint, + align: uint) -> bool { + self.align(align); + if ! self.inner.visit_estr_fixed(n, sz, align) { ret false; } self.bump(sz); true } @@ -272,11 +274,10 @@ impl ptr_visitor true } - fn visit_evec_fixed(mtbl: uint, n: uint, - sz: uint, align: uint, - inner: *tydesc) -> bool { + fn visit_evec_fixed(n: uint, sz: uint, align: uint, + mtbl: uint, inner: *tydesc) -> bool { self.align(align); - if ! self.inner.visit_evec_fixed(mtbl, n, sz, align, inner) { + if ! self.inner.visit_evec_fixed(n, sz, align, mtbl, inner) { ret false; } self.bump(sz); @@ -522,7 +523,8 @@ impl of ty_visitor for my_visitor { fn visit_estr_box() -> bool { true } fn visit_estr_uniq() -> bool { true } fn visit_estr_slice() -> bool { true } - fn visit_estr_fixed(_sz: uint) -> bool { true } + fn visit_estr_fixed(_n: uint, _sz: uint, + _align: uint) -> bool { true } fn visit_box(_mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_uniq(_mtbl: uint, _inner: *tydesc) -> bool { true } @@ -534,9 +536,8 @@ impl of ty_visitor for my_visitor { fn visit_evec_box(_mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_evec_uniq(_mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_evec_slice(_mtbl: uint, _inner: *tydesc) -> bool { true } - fn visit_evec_fixed(_n: uint, _mtbl: uint, - _sz: uint, _align: uint, - _inner: *tydesc) -> bool { true } + fn visit_evec_fixed(_n: uint, _sz: uint, _align: uint, + _mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_enter_rec(_n_fields: uint, _sz: uint, _align: uint) -> bool { true } diff --git a/src/test/run-pass/reflect-visit-type.rs b/src/test/run-pass/reflect-visit-type.rs index 2d9227e22ef..87f64c17e17 100644 --- a/src/test/run-pass/reflect-visit-type.rs +++ b/src/test/run-pass/reflect-visit-type.rs @@ -54,7 +54,8 @@ impl of ty_visitor for my_visitor { fn visit_estr_box() -> bool { true } fn visit_estr_uniq() -> bool { true } fn visit_estr_slice() -> bool { true } - fn visit_estr_fixed(_sz: uint) -> bool { true } + fn visit_estr_fixed(_sz: uint, _sz: uint, + _align: uint) -> bool { true } fn visit_box(_mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_uniq(_mtbl: uint, _inner: *tydesc) -> bool { true } @@ -71,9 +72,8 @@ impl of ty_visitor for my_visitor { fn visit_evec_box(_mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_evec_uniq(_mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_evec_slice(_mtbl: uint, _inner: *tydesc) -> bool { true } - fn visit_evec_fixed(_n: uint, _mtbl: uint, - _sz: uint, _align: uint, - _inner: *tydesc) -> bool { true } + fn visit_evec_fixed(_n: uint, _sz: uint, _align: uint, + _mtbl: uint, _inner: *tydesc) -> bool { true } fn visit_enter_rec(_n_fields: uint, _sz: uint, _align: uint) -> bool { true }