Skip to content

Instantly share code, notes, and snippets.

@pnkfelix
Created August 13, 2013 17:07
Show Gist options
  • Save pnkfelix/6223310 to your computer and use it in GitHub Desktop.
Save pnkfelix/6223310 to your computer and use it in GitHub Desktop.
-*- mode: compilation; default-directory: "~/Dev/RustVisitParam/rust1.git/objdir-dbgopt/" -*-
Compilation started at Tue Aug 13 18:57:16
time remake -j8
cfg: build triple x86_64-apple-darwin
cfg: host triples x86_64-apple-darwin
cfg: target triples x86_64-apple-darwin
cfg: enabling more debugging (CFG_ENABLE_DEBUG)
cfg: host for x86_64-apple-darwin is x86_64
cfg: os for x86_64-apple-darwin is apple-darwin
cfg: using ccache clang
compile_and_link: x86_64-apple-darwin/stage0/lib/rustc/x86_64-apple-darwin/lib/librustc.dylib
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:486:45: 486:83 error: mismatched types: expected `&mut <V123>` but found `@mut syntax::visit::Visitor<@mut middle::lint::Context>:'static` (expected &-ptr but found trait syntax::visit::Visitor)
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:486 visit::walk_item(stopping as @mut Visitor<@mut Context>, it, self);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:499:46: 499:54 error: mismatched types: expected `&mut <V610>` but found `@mut middle::lint::SubitemStoppableVisitor:'static` (expected &-ptr but found trait middle::lint::SubitemStoppableVisitor)
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:499 visit::walk_crate(stopping, c, self)
^~~~~~~~
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:524:43: 524:51 error: mismatched types: expected `&mut <V1296>` but found `@mut middle::lint::SubitemStoppableVisitor:'static` (expected &-ptr but found trait middle::lint::SubitemStoppableVisitor)
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:524 visit::walk_fn(stopping, &fk,
^~~~~~~~
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:486:45: 486:83 error: can only cast an @-pointer to an @-object, not a trait middle::lint::SubitemStoppableVisitor
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:486 visit::walk_item(stopping as @mut Visitor<@mut Context>, it, self);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:486:28: 486:44 error: cannot determine a type for this bounded type parameter: unconstrained type
/Users/fklock/Dev/RustVisitParam/rust1.git/src/librustc/middle/lint.rs:486 visit::walk_item(stopping as @mut Visitor<@mut Context>, it, self);
^~~~~~~~~~~~~~~~
remake: *** [x86_64-apple-darwin/stage0/lib/rustc/x86_64-apple-darwin/lib/librustc.dylib] Error 101
Command-line invocation:
"/Users/fklock/opt/remake/bin/remake -j8"
real 0m13.591s
user 0m12.504s
sys 0m1.047s
Compilation exited abnormally with code 2 at Tue Aug 13 18:57:30
@nikomatsakis
Copy link

I think you have to convert:

 visit::walk_item(stopping as @mut Visitor<@mut Context>, it, self);

to something like:

let mut x = stopping as @mut Visitor<..>;
visit::walk_item(&mut x, it, self);

The reason being that: &mut T is required where T: Visitor. Here, T is @mut Visitor. This is one of the pitfalls of using an object type @mut Trait as a "type that implements Trait"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment