Fixed deprecated vector syntax

This commit is contained in:
Margaret Meyerhofer 2012-07-12 10:13:06 -07:00
parent 12a05daa5d
commit 1212f3df65
28 changed files with 128 additions and 127 deletions

@ -1 +1 @@
Subproject commit e9f7c1a5944608dd55d5dfb517c86c408e23a0ff
Subproject commit 50c5e964d91316ce19d7be8de68903eedca87703

@ -1 +1 @@
Subproject commit 9a133eb6edcc576b006fdb446a80072f7da3e229
Subproject commit fc51299da10833faa6fe322ced5e998139015c76

@ -1 +1 @@
Subproject commit a878f4fa59f7f95e527e342eeb1a7041e735582a
Subproject commit ce58ddadbc61b3c79033db13b3e63ac2946c7588

@ -1 +1 @@
Subproject commit 2d87ae88486ee1a438fa71d1199dd7bc987b17fa
Subproject commit 30f1c06c32979da20f6dc82119b4037deba08229

View file

@ -51,6 +51,7 @@ of the RCU nodes themselves.
import ptr::extensions;
import core::libc::types::os::arch::c95::size_t;
import vec::push;
export Handle;
export ReaderMethods;
@ -59,7 +60,7 @@ export Scope;
type ScopeData<T:send,A> = {
mut layout_active: bool,
mut free_list: [Handle<T,A>],
mut free_list: ~[Handle<T,A>],
mut first_dirty: Handle<T,A>
};
@ -159,7 +160,7 @@ fn null_handle<T:send,A>() -> Handle<T,A> {
fn Scope<T:send,A>() -> Scope<T,A> {
@ScopeResource({mut layout_active: false,
mut free_list: [],
mut free_list: ~[],
mut first_dirty: null_handle()})
}
@ -219,7 +220,7 @@ impl WriterMethods<T:copy send,A> for Scope<T,A> {
(*d).read_aux = ptr::null();
(*d).next_dirty = null_handle();
let h = _Handle(d);
self.d.free_list += [h];
push(self.d.free_list, h);
ret h;
}
}

View file

@ -21,12 +21,12 @@ enum Attr{
}
enum Selector{
Element(str, [Attr]),
Element(str, ~[Attr]),
Child(~Selector, ~Selector),
Descendant(~Selector, ~Selector),
Sibling(~Selector, ~Selector)
}
type Rule = ([~Selector], [StyleDeclaration]);
type Rule = (~[~Selector], ~[StyleDeclaration]);
type Stylesheet = [~Rule];
type Stylesheet = ~[~Rule];

View file

@ -2,7 +2,7 @@
A graphics sink that renders to PNG format buffers
Each time the renderer renders a frame the bufsink will output a
`[u8]` containing the frame in PNG format.
`~[u8]` containing the frame in PNG format.
"];
export PngSink, Msg, Exit;
@ -45,7 +45,7 @@ impl PngSink of Sink for chan<Msg> {
}
}
fn PngSink(output: chan<[u8]>) -> PngSink {
fn PngSink(output: chan<~[u8]>) -> PngSink {
spawn_listener::<Msg>(|po| {
let cairo_surf = cairo_image_surface_create(
CAIRO_FORMAT_ARGB32, 800 as c_int, 600 as c_int
@ -76,10 +76,10 @@ fn PngSink(output: chan<[u8]>) -> PngSink {
fn do_draw(sender: chan<AzDrawTargetRef>,
dt: AzDrawTargetRef,
output: chan<[u8]>,
output: chan<~[u8]>,
cairo_surf: *cairo_surface_t) {
listen(|data_ch: chan<[u8]>| {
listen(|data_ch: chan<~[u8]>| {
extern fn write_fn(closure: *c_void,
data: *c_uchar,
@ -87,7 +87,7 @@ fn do_draw(sender: chan<AzDrawTargetRef>,
-> cairo_status_t unsafe {
let p: *chan<[u8]> = reinterpret_cast(closure);
let p: *chan<~[u8]> = reinterpret_cast(closure);
let data_ch = *p;
// Convert from *c_uchar to *u8
@ -108,7 +108,7 @@ fn do_draw(sender: chan<AzDrawTargetRef>,
}
// Collect the entire image into a single vector
let mut result = [];
let mut result = ~[];
while data_ch.peek() {
result += data_ch.recv();
}
@ -127,7 +127,7 @@ fn sanity_check() {
let sink = PngSink(self_channel);
let renderer = Renderer(sink);
let dlist = [];
let dlist = ~[];
renderer.send(RenderMsg(dlist));
listen(|from_renderer| {
renderer.send(renderer::ExitMsg(from_renderer));

View file

@ -9,7 +9,7 @@ enum format {
type image_surface = {
size: Size2D<int>,
format: format,
buffer: [u8]
buffer: ~[u8]
};
impl format for format {

View file

@ -17,6 +17,7 @@ import util::color::Color;
import text::text_box;
import style::style::computed_style;
import text::text_layout_methods;
import vec::{push, push_all};
enum BoxKind {
BlockBox,
@ -171,7 +172,7 @@ mod test {
fn with_screen(f: fn(*sdl::surface)) {
let screen = video::set_video_mode(
320, 200, 32,
[video::hwsurface], [video::doublebuf]);
~[video::hwsurface], ~[video::doublebuf]);
assert screen != ptr::null();
f(screen);
@ -180,12 +181,15 @@ mod test {
}
*/
fn flat_bounds(root: @Box) -> [Rect<au>] {
let mut r = [];
fn flat_bounds(root: @Box) -> ~[Rect<au>] {
let mut r = ~[];
for tree::each_child(BTree, root) |c| {
r += flat_bounds(c);
push_all(r, flat_bounds(c));
}
ret r + [copy root.bounds];
push(r, copy root.bounds);
ret r;
}
#[test]
@ -218,10 +222,10 @@ mod test {
b3.reflow_block(au(100));
let fb = flat_bounds(b3);
#debug["fb=%?", fb];
assert fb == [geometry::box(au(0), au(0), au(10), au(10)), // n0
geometry::box(au(0), au(10), au(10), au(15)), // n1
geometry::box(au(0), au(25), au(10), au(20)), // n2
geometry::box(au(0), au(0), au(100), au(45))]; // n3
assert fb == ~[geometry::box(au(0), au(0), au(10), au(10)), // n0
geometry::box(au(0), au(10), au(10), au(15)), // n1
geometry::box(au(0), au(25), au(10), au(20)), // n2
geometry::box(au(0), au(0), au(100), au(45))]; // n3
}
}

View file

@ -16,4 +16,4 @@ enum display_item = {
bounds: Rect<au>
};
type display_list = [display_item];
type display_list = ~[display_item];

View file

@ -13,6 +13,7 @@ import geom::size::Size2D;
import geom::point::Point2D;
import geom::rect::Rect;
import base::{Box, TextBox, BTree, BoxTreeReadMethods};
import vec::push;
#[doc = "
@ -63,8 +64,8 @@ Creates a display list item for a single block.
"]
#[warn(no_non_implicitly_copyable_typarams)]
fn box_to_display_items(box: @Box, origin: Point2D<au>) -> [dl::display_item] {
let mut items = [];
fn box_to_display_items(box: @Box, origin: Point2D<au>) -> ~[dl::display_item] {
let mut items = ~[];
#debug("request to display a box from origin %?", origin);
@ -74,38 +75,36 @@ fn box_to_display_items(box: @Box, origin: Point2D<au>) -> [dl::display_item] {
(TextBox(subbox), _, _) {
let run = copy subbox.run;
assert run.is_some();
items += [
dl::display_item({
item_type: dl::display_item_solid_color(255u8, 255u8, 255u8),
bounds: bounds
}),
dl::display_item({
item_type: dl::display_item_text(run.get()),
bounds: bounds
})
];
push(items, dl::display_item({
item_type: dl::display_item_solid_color(255u8, 255u8, 255u8),
bounds: bounds
}));
push(items, dl::display_item({
item_type: dl::display_item_text(run.get()),
bounds: bounds
}));
}
(_, some(image), some(*)) | (_, some(image), none) {
items += [dl::display_item({
push(items, dl::display_item({
item_type: dl::display_item_image(~copy *image),
bounds: bounds
})];
}));
}
(_, none, some(col)) {
#debug("Assigning color %? to box with bounds %?", col, bounds);
items += [dl::display_item({
push(items, dl::display_item({
item_type: dl::display_item_solid_color(col.red, col.green, col.blue),
bounds: bounds
})];
}));
}
(_, none, none) {
let r = rand::rng();
items += [dl::display_item({
push(items, dl::display_item({
item_type: dl::display_item_solid_color(r.next() as u8,
r.next() as u8,
r.next() as u8),
bounds: bounds
})];
}));
}
}

View file

@ -219,7 +219,7 @@ mod test {
let scope = NodeScope();
let node = new_node_from_attr(scope, "lang", "en-us");
let sel = Element("*", [StartsWith("lang", "en")]);
let sel = Element("*", ~[StartsWith("lang", "en")]);
assert node.matches_selector(~sel);
}
@ -229,7 +229,7 @@ mod test {
let scope = NodeScope();
let node = new_node_from_attr(scope, "lang", "en");
let sel = Element("*", [StartsWith("lang", "en")]);
let sel = Element("*", ~[StartsWith("lang", "en")]);
assert node.matches_selector(~sel);
}
@ -239,7 +239,7 @@ mod test {
let scope = NodeScope();
let node = new_node_from_attr(scope, "lang", "english");
let sel = Element("*", [StartsWith("lang", "en")]);
let sel = Element("*", ~[StartsWith("lang", "en")]);
assert !node.matches_selector(~sel);
}
@ -249,7 +249,7 @@ mod test {
let scope = NodeScope();
let node = new_node_from_attr(scope, "mad", "hatter cobler cooper");
let sel = Element("div", [Includes("mad", "hatter")]);
let sel = Element("div", ~[Includes("mad", "hatter")]);
assert node.matches_selector(~sel);
}
@ -259,8 +259,8 @@ mod test {
let scope = NodeScope();
let node = new_node_from_attr(scope, "mad", "hatter cobler cooper");
let sel1 = Element("div", [Exists("mad")]);
let sel2 = Element("div", [Exists("hatter")]);
let sel1 = Element("div", ~[Exists("mad")]);
let sel2 = Element("div", ~[Exists("hatter")]);
assert node.matches_selector(~sel1);
assert !node.matches_selector(~sel2);
@ -272,7 +272,7 @@ mod test {
let node1 = new_node_from_attr(scope, "mad", "hatter cobler cooper");
let node2 = new_node_from_attr(scope, "mad", "hatter");
let sel = Element("div", [Exact("mad", "hatter")]);
let sel = Element("div", ~[Exact("mad", "hatter")]);
assert !node1.matches_selector(~copy sel);
assert node2.matches_selector(~sel);
@ -295,8 +295,8 @@ mod test {
scope.add_child(gchild, ggchild);
scope.add_child(ggchild, gggchild);
let sel1 = Descendant(~Element("*", [Exact("class", "blue")]),
~Element("*", []));
let sel1 = Descendant(~Element("*", ~[Exact("class", "blue")]),
~Element("*", ~[]));
assert !root.matches_selector(~copy sel1);
assert child1.matches_selector(~copy sel1);
@ -305,9 +305,9 @@ mod test {
assert ggchild.matches_selector(~copy sel1);
assert gggchild.matches_selector(~sel1);
let sel2 = Descendant(~Child(~Element("*", [Exact("class", "blue")]),
~Element("*", [])),
~Element("div", [Exists("flag")]));
let sel2 = Descendant(~Child(~Element("*", ~[Exact("class", "blue")]),
~Element("*", ~[])),
~Element("div", ~[Exists("flag")]));
assert !root.matches_selector(~copy sel2);
assert !child1.matches_selector(~copy sel2);
@ -316,7 +316,7 @@ mod test {
assert ggchild.matches_selector(~copy sel2);
assert gggchild.matches_selector(~sel2);
let sel3 = Sibling(~Element("*", []), ~Element("*", []));
let sel3 = Sibling(~Element("*", ~[]), ~Element("*", ~[]));
assert !root.matches_selector(~copy sel3);
assert child1.matches_selector(~copy sel3);
@ -325,9 +325,9 @@ mod test {
assert !ggchild.matches_selector(~copy sel3);
assert !gggchild.matches_selector(~sel3);
let sel4 = Descendant(~Child(~Element("*", [Exists("class")]),
~Element("*", [])),
~Element("*", []));
let sel4 = Descendant(~Child(~Element("*", ~[Exists("class")]),
~Element("*", ~[])),
~Element("*", ~[]));
assert !root.matches_selector(~copy sel4);
assert !child1.matches_selector(~copy sel4);

View file

@ -4,7 +4,7 @@ import uri::uri;
iface input_stream {
fn close();
fn read() -> [u8];
fn read() -> ~[u8];
}
iface channel {

View file

@ -6,7 +6,7 @@ from command line arguments.
"];
type Opts = {
urls: [str],
urls: ~[str],
render_mode: RenderMode
};
@ -16,12 +16,12 @@ enum RenderMode {
}
#[warn(no_non_implicitly_copyable_typarams)]
fn from_cmdline_args(args: [str]) -> Opts {
fn from_cmdline_args(args: ~[str]) -> Opts {
import std::getopts;
let args = args.tail();
let opts = [
let opts = ~[
getopts::optopt("o")
];

View file

@ -12,6 +12,7 @@ import parser::css_lexer::{Token, StartDescription, EndDescription,
import comm::recv;
import option::is_none;
import util::color::parsing::parse_color;
import vec::push;
type TokenReader = {stream : port<Token>, mut lookahead : option<Token>};
@ -37,13 +38,13 @@ fn parse_element(reader : TokenReader) -> option<~style::Selector> {
_ { fail "Expected an element" }
};
let mut attr_list = [];
let mut attr_list = ~[];
// Get the attributes associated with that element
loop {
let tok = reader.get();
alt tok {
Attr(attr) { attr_list += [copy attr]; }
Attr(attr) { push(attr_list, copy attr); }
StartDescription | Descendant | Child | Sibling | Comma {
reader.unget(tok);
break;
@ -60,8 +61,8 @@ fn parse_element(reader : TokenReader) -> option<~style::Selector> {
}
fn parse_rule(reader : TokenReader) -> option<~style::Rule> {
let mut sel_list = [];
let mut desc_list = [];
let mut sel_list = ~[];
let mut desc_list = ~[];
// Collect all the selectors that this rule applies to
loop {
@ -107,13 +108,13 @@ fn parse_rule(reader : TokenReader) -> option<~style::Rule> {
}
StartDescription {
let built_sel <- cur_sel;
sel_list += [built_sel];
push(sel_list, built_sel);
reader.unget(StartDescription);
break;
}
Comma {
let built_sel <- cur_sel;
sel_list += [built_sel];
push(sel_list, built_sel);
reader.unget(Comma);
break;
}
@ -146,27 +147,25 @@ fn parse_rule(reader : TokenReader) -> option<~style::Rule> {
let num = val.substr(0u, val.len() - 2u);
alt uint::from_str(num) {
some(n) { desc_list += [FontSize(n)]; }
some(n) { push(desc_list, FontSize(n)); }
none { fail "Nonnumber provided as font size"; }
}
}
"display" {
alt val {
"inline" { desc_list += [Display(DisInline)]; }
"block" { desc_list += [Display(DisBlock)]; }
"none" { desc_list += [Display(DisNone)]; }
_ { #debug["Recieved unknown display value '%s'",
val]; }
"inline" { push(desc_list, Display(DisInline)); }
"block" { push(desc_list, Display(DisBlock)); }
"none" { push(desc_list, Display(DisNone)); }
_ { #debug["Recieved unknown display value '%s'", val]; }
}
}
"color" {
desc_list += [TextColor(parse_color(val))];
push(desc_list, TextColor(parse_color(val)));
}
"background-color" {
desc_list += [BackgroundColor(parse_color(val))];
push(desc_list, BackgroundColor(parse_color(val)));
}
_ { #debug["Recieved unknown style property '%s'",
val]; }
_ { #debug["Recieved unknown style property '%s'", val]; }
}
}
Eof { ret none; }
@ -180,13 +179,13 @@ fn parse_rule(reader : TokenReader) -> option<~style::Rule> {
ret some(~(sel_list, desc_list));
}
fn build_stylesheet(stream : port<Token>) -> [~style::Rule] {
let mut rule_list = [];
fn build_stylesheet(stream : port<Token>) -> ~[~style::Rule] {
let mut rule_list = ~[];
let reader = {stream : stream, mut lookahead : none};
loop {
alt parse_rule(reader) {
some(rule) { rule_list += [copy rule]; }
some(rule) { push(rule_list, copy rule); }
none { break; }
}
}

View file

@ -2,6 +2,7 @@ import comm::{port, chan};
import dom::style;
import option::is_none;
import str::from_bytes;
import vec::push;
import lexer_util::*;
@ -155,7 +156,7 @@ impl css_methods for CssLexer {
}
}
let mut desc_name = [];
let mut desc_name = ~[];
// Get the name of the descriptor
loop {
@ -168,7 +169,7 @@ impl css_methods for CssLexer {
break;
}
} else {
desc_name += [ch];
push(desc_name, ch);
}
alt self.input_state.get() {
@ -178,7 +179,7 @@ impl css_methods for CssLexer {
}
self.input_state.eat_whitespace();
let mut desc_val = [];
let mut desc_val = ~[];
// Get the value of the descriptor
loop {
@ -203,7 +204,7 @@ impl css_methods for CssLexer {
break;
}
} else {
desc_val += [ch];
push(desc_val, ch);
}
}

View file

@ -10,7 +10,7 @@ import gfx::geometry::au;
import parser = parser::html_lexer;
import parser::Token;
import dom::style::Stylesheet;
import vec::{push, push_all_move, flat_map};
import dvec::extensions;
enum css_message {
@ -86,7 +86,7 @@ spawned, collates them, and sends them to the given result channel.
"]
fn css_link_listener(to_parent : chan<Stylesheet>, from_parent : port<css_message>) {
let mut result_vec = [];
let mut result_vec = ~[];
loop {
alt from_parent.recv() {
@ -101,7 +101,7 @@ fn css_link_listener(to_parent : chan<Stylesheet>, from_parent : port<css_messag
let mut css_rules = css_builder::build_stylesheet(css_stream);
result_chan.send(css_rules);
});
result_vec += [result_port];
push(result_vec, result_port);
}
exit {
break;
@ -109,13 +109,8 @@ fn css_link_listener(to_parent : chan<Stylesheet>, from_parent : port<css_messag
}
}
let css_rules = [];
let css_rules = flat_map(result_vec, |result_port| { result_port.recv() });
let css_rules = result_vec.foldl(css_rules, |rules, result_port| {
let new_rules = result_port.recv();
rules + new_rules
});
to_parent.send(css_rules);
}

View file

@ -2,6 +2,7 @@ import comm::{port, chan};
import dom::style;
import option::is_none;
import str::from_bytes;
import vec::push;
import lexer_util::*;
enum Token {
@ -76,7 +77,7 @@ impl html_methods for HtmlLexer {
}
// Make a text node.
let mut s: [u8] = [ch];
let mut s: ~[u8] = ~[ch];
loop {
alt self.input_state.get() {
CoeChar(c) {
@ -84,7 +85,7 @@ impl html_methods for HtmlLexer {
self.input_state.unget(c);
ret Text(from_bytes(s));
}
s += [c];
push(s, c);
}
CoeEof { ret Text(from_bytes(s)); }
}
@ -120,12 +121,12 @@ impl html_methods for HtmlLexer {
}
// Parse an attribute.
let mut attribute_name = [ch];
let mut attribute_name = ~[ch];
loop {
alt self.input_state.get() {
CoeChar(c) {
if c == ('=' as u8) { break; }
attribute_name += [c];
push(attribute_name, c);
}
CoeEof {
let name = from_bytes(attribute_name);
@ -136,12 +137,12 @@ impl html_methods for HtmlLexer {
// Parse the attribute value.
self.input_state.expect('"' as u8);
let mut attribute_value = [];
let mut attribute_value = ~[];
loop {
alt self.input_state.get() {
CoeChar(c) {
if c == ('"' as u8) { break; }
attribute_value += [c];
push(attribute_value, c);
}
CoeEof {
ret Attr(from_bytes(attribute_name), from_bytes(attribute_value));

View file

@ -1,6 +1,6 @@
import option::is_none;
import str::from_bytes;
import vec::push;
enum CharOrEof {
CoeChar(u8),
@ -63,12 +63,12 @@ impl util_methods for InputState {
}
fn parse_ident() -> str {
let mut result: [u8] = [];
let mut result: ~[u8] = ~[];
loop {
alt self.get() {
CoeChar(c) {
if (c.is_alpha()) {
result += [c];
push(result, c);
} else if result.len() == 0u {
self.parse_err("expected ident");
} else {

View file

@ -13,6 +13,7 @@ import dom::event::{Event, ResizeEvent};
import layers::ImageLayer;
import geom::size::Size2D;
import std::cmp::fuzzy_eq;
import vec::push;
type OSMain = chan<Msg>;
@ -200,6 +201,7 @@ type surface = {
fn mk_surface() -> surface {
let cairo_surf = cairo_image_surface_create(cairo::CAIRO_FORMAT_RGB24, 800, 600);
assert !ptr::is_null(cairo_surf);
let azure_target = AzCreateDrawTargetForCairoSurface(cairo_surf);

View file

@ -7,8 +7,6 @@
#[license = "MPL"];
#[crate_type = "lib"];
#[warn(no_old_vecs)];
use std;
use sdl;
use azure;
@ -96,6 +94,7 @@ mod util {
mod unsafe;
}
#[warn(no_non_implicitly_copyable_typarams)]
mod content {
}

View file

@ -5,7 +5,7 @@ import osmain::{OSMain, AddKeyHandler};
import opts::{Opts, Screen, Png};
import engine::{Engine, LoadURLMsg};
fn main(args: [str]) {
fn main(args: ~[str]) {
run(opts::from_cmdline_args(args))
}
@ -25,7 +25,7 @@ fn run(opts: Opts) {
}
}
fn run_pipeline_screen(urls: [str]) {
fn run_pipeline_screen(urls: ~[str]) {
// The platform event handler thread
let osmain = OSMain();

View file

@ -32,7 +32,7 @@ class Font {
let cairo_font: *cairo_scaled_font_t;
let font_dtor: fn@();
new(-fontbuf: [u8]) {
new(-fontbuf: ~[u8]) {
let (cairo_font, font_dtor) = get_cairo_font(&copy fontbuf);
assert cairo_font.is_not_null();
@ -81,7 +81,7 @@ class Font {
#debug("getting h advance for glyph %?", glyph);
let glyphs: [cairo_glyph_t] = [{
let glyphs: ~[cairo_glyph_t] = ~[{
index: glyph as c_ulong,
x: 0 as c_double,
y: 0 as c_double,
@ -264,7 +264,7 @@ fn create_test_font() -> @Font {
ret flib.get_test_font();
}
fn test_font_bin() -> [u8] { #include_bin("JosefinSans-SemiBold.ttf") }
fn test_font_bin() -> ~[u8] { #include_bin("JosefinSans-SemiBold.ttf") }
fn should_destruct_on_fail_without_leaking() {
#[test];

View file

@ -48,7 +48,7 @@ class QuartzNativeFont/& {
}
}
fn create(buf: [u8]) -> result<QuartzNativeFont, ()> {
fn create(buf: ~[u8]) -> result<QuartzNativeFont, ()> {
let fontprov = vec::as_buf(buf, |cbuf| {
CGDataProviderCreateWithData(
null(),

View file

@ -35,7 +35,7 @@ import harfbuzz::bindgen::{hb_blob_create, hb_blob_destroy,
Calculate the layout metrics associated with a some given text
when rendered in a specific font.
"]
fn shape_text(font: &Font, text: str) -> [Glyph] unsafe {
fn shape_text(font: &Font, text: str) -> ~[Glyph] unsafe {
#debug("shaping text '%s'", text);
let face_blob = vec::as_buf(*(*font).buf(), |buf| {
@ -79,7 +79,7 @@ fn shape_text(font: &Font, text: str) -> [Glyph] unsafe {
assert info_len == pos_len;
let mut glyphs = [];
let mut glyphs = ~[];
for uint::range(0u, info_len as uint) |i| {
let info_ = offset(info_, i);
@ -89,7 +89,7 @@ fn shape_text(font: &Font, text: str) -> [Glyph] unsafe {
#debug("glyph %?: codep %?, x_adv %?, y_adv %?, x_off %?, y_of %?",
i, codepoint, pos.advance.x, pos.advance.y, pos.offset.x, pos.offset.y);
glyphs += [Glyph(codepoint, pos)];
glyphs += ~[Glyph(codepoint, pos)];
}
hb_buffer_destroy(buffer);
@ -148,7 +148,7 @@ fn should_get_glyph_indexes() {
let font = font::create_test_font();
let glyphs = shape_text(font, "firecracker");
let idxs = glyphs.map(|glyph| glyph.index);
assert idxs == [32u, 8u, 13u, 14u, 10u, 13u, 201u, 10u, 37u, 14u, 13u];
assert idxs == ~[32u, 8u, 13u, 14u, 10u, 13u, 201u, 10u, 37u, 14u, 13u];
}
fn should_get_glyph_h_advance() {
@ -158,6 +158,6 @@ fn should_get_glyph_h_advance() {
let font = font::create_test_font();
let glyphs = shape_text(font, "firecracker");
let actual = glyphs.map(|g| g.pos.advance.x);
let expected = [6, 4, 7, 9, 8, 7, 10, 8, 9, 9, 7].map(|a| px_to_au(a));
let expected = (~[6, 4, 7, 9, 8, 7, 10, 8, 9, 9, 7]).map(|a| px_to_au(a));
assert expected == actual;
}

View file

@ -9,7 +9,7 @@ import shaper::shape_text;
#[doc="A single, unbroken line of text."]
class TextRun {
let glyphs: [Glyph];
let glyphs: ~[Glyph];
new(font: Font, text: str) {
self.glyphs = shape_text(&font, text);

View file

@ -99,10 +99,10 @@ mod test {
dummy(@{fields: empty(), value: v})
}
fn parent_with_3_children() -> {p: dummy, children: [dummy]} {
let children = [new_dummy(0u),
new_dummy(1u),
new_dummy(2u)];
fn parent_with_3_children() -> {p: dummy, children: ~[dummy]} {
let children = ~[new_dummy(0u),
new_dummy(1u),
new_dummy(2u)];
let p = new_dummy(3u);
for vec::each(children) |c| {