diff --git a/src/servo/content.rs b/src/servo/content.rs index 95393939f70..562787e1a30 100644 --- a/src/servo/content.rs +++ b/src/servo/content.rs @@ -29,6 +29,7 @@ enum PingMsg { } #[doc="Sends a ping to layout and waits for the response."] +#[warn(no_non_implicitly_copyable_typarams)] fn join_layout(scope: NodeScope, to_layout: chan) { if scope.is_reader_forked() { @@ -41,6 +42,7 @@ fn join_layout(scope: NodeScope, to_layout: chan) { } } +#[warn(no_non_implicitly_copyable_typarams)] fn content(to_layout: chan) -> chan { task::spawn_listener:: { |from_master| diff --git a/src/servo/dom/base.rs b/src/servo/dom/base.rs index 04065a80db4..88fb9ed6749 100644 --- a/src/servo/dom/base.rs +++ b/src/servo/dom/base.rs @@ -72,12 +72,14 @@ fn NodeScope() -> NodeScope { rcu::Scope() } +#[warn(no_non_implicitly_copyable_typarams)] impl NodeScope for NodeScope { fn new_node(-k: NodeKind) -> Node { self.handle(NodeData({tree: tree::empty(), kind: ~k})) } } +#[warn(no_non_implicitly_copyable_typarams)] impl TreeReadMethods of tree::ReadMethods for NodeScope { fn each_child(node: Node, f: fn(Node) -> bool) { tree::each_child(self, node, f) @@ -92,6 +94,7 @@ impl TreeReadMethods of tree::ReadMethods for NodeScope { } } +#[warn(no_non_implicitly_copyable_typarams)] impl TreeWriteMethods of tree::WriteMethods for NodeScope { fn add_child(node: Node, child: Node) { tree::add_child(self, node, child) diff --git a/src/servo/dom/rcu.rs b/src/servo/dom/rcu.rs index ad0dc6b6ea5..cc5fd7c8e58 100644 --- a/src/servo/dom/rcu.rs +++ b/src/servo/dom/rcu.rs @@ -205,6 +205,7 @@ impl WriterMethods for Scope { f(*h.write_ptr()) } + #[warn(no_non_implicitly_copyable_typarams)] fn handle(v: T) -> Handle unsafe { let d: *HandleData = unsafe::reinterpret_cast( @@ -220,6 +221,7 @@ impl WriterMethods for Scope { } #[cfg(test)] +#[warn(no_non_implicitly_copyable_typarams)] mod test { type animal = {name: str, species: species}; diff --git a/src/servo/layout/display_list_builder.rs b/src/servo/layout/display_list_builder.rs index 8ae905a45e5..af8cd085f91 100644 --- a/src/servo/layout/display_list_builder.rs +++ b/src/servo/layout/display_list_builder.rs @@ -62,6 +62,7 @@ Creates a display list item for a single block. * `origin` - The coordinates of upper-left corner of the passed in box. "] +#[warn(no_non_implicitly_copyable_typarams)] fn box_to_display_items(box: @Box, origin: Point2D) -> [dl::display_item] { let mut items = []; diff --git a/src/servo/layout/style/matching.rs b/src/servo/layout/style/matching.rs index 601c11a341e..fb073565224 100644 --- a/src/servo/layout/style/matching.rs +++ b/src/servo/layout/style/matching.rs @@ -205,6 +205,7 @@ mod test { import dvec::{dvec, extensions}; import io::println; + #[warn(no_non_implicitly_copyable_typarams)] fn new_node_from_attr(scope: NodeScope, -name: str, -val: str) -> Node { let elmt = ElementData("div", ~HTMLDivElement); let attr = ~Attr(name, val); diff --git a/src/servo/layout/text.rs b/src/servo/layout/text.rs index ff71845816c..20fb776172c 100644 --- a/src/servo/layout/text.rs +++ b/src/servo/layout/text.rs @@ -26,8 +26,8 @@ impl text_layout_methods for @Box { let font = create_test_font(); let run = text_run(&font, subbox.text); - subbox.run = some(run); self.bounds.size = run.size(); + subbox.run = some(run); } } diff --git a/src/servo/opts.rs b/src/servo/opts.rs index 72ad43057e8..694af73cbaa 100644 --- a/src/servo/opts.rs +++ b/src/servo/opts.rs @@ -15,6 +15,7 @@ enum render_mode { png(str) } +#[warn(no_non_implicitly_copyable_typarams)] fn from_cmdline_args(args: [str]) -> opts { import std::getopts; diff --git a/src/servo/parser/html_builder.rs b/src/servo/parser/html_builder.rs index 097012a661e..0dd6c8a5491 100644 --- a/src/servo/parser/html_builder.rs +++ b/src/servo/parser/html_builder.rs @@ -12,6 +12,7 @@ import parser::token; import dvec::extensions; +#[warn(no_non_implicitly_copyable_typarams)] fn link_up_attribute(scope: NodeScope, node: Node, -key: str, -value: str) { // TODO: Implement atoms so that we don't always perform string comparisons. scope.read(node) { diff --git a/src/servo/parser/lexer.rs b/src/servo/parser/lexer.rs index a341021df34..42ac0aef9b3 100644 --- a/src/servo/parser/lexer.rs +++ b/src/servo/parser/lexer.rs @@ -475,6 +475,7 @@ fn parser(reader: io::reader, state : parse_state) -> parser { ret { mut lookahead: none, mut state: state, reader: reader }; } +#[warn(no_non_implicitly_copyable_typarams)] fn spawn_html_parser_task(-filename: ~str) -> port { let result_port = port(); let result_chan = chan(result_port); @@ -496,6 +497,7 @@ fn spawn_html_parser_task(-filename: ~str) -> port { ret result_port; } +#[warn(no_non_implicitly_copyable_typarams)] fn spawn_css_lexer_task(-filename: ~str) -> port { let result_port = port(); let result_chan = chan(result_port); diff --git a/src/servo/servo.rs b/src/servo/servo.rs index fffba519bf9..fbe767f93cf 100644 --- a/src/servo/servo.rs +++ b/src/servo/servo.rs @@ -8,8 +8,8 @@ fn main(args: [str]) { run(opts::from_cmdline_args(args)) } +#[warn(no_non_implicitly_copyable_typarams)] fn run(opts: opts::opts) { - alt opts.render_mode { opts::screen { run_pipeline_screen(opts.urls) diff --git a/src/servo/text/font.rs b/src/servo/text/font.rs index 27077c229da..b65c2d5eb78 100644 --- a/src/servo/text/font.rs +++ b/src/servo/text/font.rs @@ -24,17 +24,18 @@ import azure::cairo::bindgen::{ A font handle. Layout can use this to calculate glyph metrics and the renderer can use it to render text. "] +#[warn(no_non_implicitly_copyable_typarams)] class font/& { let fontbuf: [u8]; 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(&fontbuf); + let (cairo_font, font_dtor) = get_cairo_font(© fontbuf); assert cairo_font.is_not_null(); - self.fontbuf = fontbuf; + self.fontbuf <- fontbuf; self.cairo_font = cairo_font; self.font_dtor = font_dtor; }