Closed
Description
Updated example
trait Trait {
fn outer(self) {
fn inner(_: Self) {
}
}
}
fn main() { }
error: missing `Self` type param in the substitution of `fn(Self)`
Original issue
I have no idea where this came from, so here's a stacktrace.
Starting program: /usr/bin/rustc datafile_raw.rs
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
warning: File "/usr/lib/libstdc++.so.6.0.19-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
[New Thread 0x7ffff1f78480 (LWP 4681)]
datafile_raw.rs:348:75: 348:81 error: mismatched types: expected `fn(<generic #1>, &&'a Self) -> <generic #2>` but found `fn(uint, &'a Self) -> DatafileItem<'a>` (expected &-ptr but found self)
datafile_raw.rs:348 MapIterator { data: self, iterator: range(0, self.num_items()), map_fn: map_fn }
^~~~~~
datafile_raw.rs:348:3: 348:83 error: mismatched types: expected `DatafileItemIterator<'a,Self>` but found `MapIterator<<generic #1>,<generic #2>,&'a Self,std::iter::Range<uint>>` (expected struct DatafileItemIterator but found struct MapIterator)
datafile_raw.rs:348 MapIterator { data: self, iterator: range(0, self.num_items()), map_fn: map_fn }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Switching to Thread 0x7ffff1f78480 (LWP 4681)]
Breakpoint 1, std::rt::unwind::Unwinder::begin_unwind::rust_fail () at src/libstd/rt/global_heap.rs:71
71 pub unsafe fn exchange_malloc(size: uint) -> *u8 {
(gdb) bt
#0 std::rt::unwind::Unwinder::begin_unwind::rust_fail () at src/libstd/rt/global_heap.rs:71
#1 0x00007ffff775c961 in std::rt::unwind::Unwinder::begin_unwind (self=0x6066a8, cause=...) at src/libstd/rt/unwind.rs:220
#2 0x00007ffff76bfa29 in std::rt::unwind::begin_unwind_inner (msg=..., file=..., line=148) at src/libstd/rt/unwind.rs:538
#3 0x00007ffff371240e in rt::unwind::begin_unwind::h2c1d88c0eb2e464eqik::v0.10.pre () from /usr/lib/librustc-6ccece0c-0.10-pre.so
#4 0x00007ffff3964b1c in lookup_vtable (vcx=<optimized out>, location_info=<optimized out>, trait_ref=<optimized out>, is_early=<optimized out>)
at src/librustc/middle/typeck/check/vtable.rs:272
#5 push_inherent_candidates_from_self (self=<optimized out>, restrict_to=..., rcvr_ty=...) at src/librustc/middle/typeck/check/method.rs:498
#6 rustc::middle::typeck::check::method::LookupContext<'a>::push_bound_candidates (self=<optimized out>, restrict_to=..., self_ty=...) at src/librustc/middle/typeck/check/method.rs:364
#7 0x00007ffff39625b7 in rustc::middle::typeck::check::method::lookup (fcx=0x7fffecc18a60, expr=<optimized out>, self_expr=<optimized out>, m_name=<optimized out>, deref_args=<optimized out>,
check_traits=<optimized out>, autoderef_receiver=<optimized out>, self_ty=..., supplied_tps=...) at src/librustc/middle/typeck/check/method.rs:164
#8 0x00007ffff39a11af in trans_if (fcx=<optimized out>, ast_ty=<optimized out>, expr=<optimized out>, method_name=..., method_name=..., method_name=..., bcx=<optimized out>,
if_id=<optimized out>, cond=<optimized out>, thn=<optimized out>, els=..., dest=...) at src/librustc/middle/typeck/check/mod.rs:1921
#9 rustc::middle::typeck::check::check_expr_with_unifier (fcx=0x7fffecc18a60, expr=0x7fffec25f8c0, expected=..., lvalue_pref=<optimized out>, unifier=<optimized out>)
at src/librustc/middle/typeck/check/mod.rs:2976
#10 0x00007ffff397fae8 in rustc::middle::typeck::check::check_block_with_expected (fcx=0x7fffecc18a60, blk=0x7fffec25f980, expected=...) at src/librustc/middle/typeck/check/mod.rs:1411
#11 0x00007ffff397be11 in rustc::middle::typeck::check::check_fn (ccx=0x7fffec0848c0, body=0x7fffec25f980, fn_kind=Vanilla, inherited=0x7fffecba4c00, purity=<optimized out>,
fn_sig=<optimized out>, decl=<optimized out>, id=<optimized out>) at src/librustc/middle/typeck/check/mod.rs:490
#12 0x00007ffff397b6bb in rustc::middle::typeck::check::check_bare_fn (ccx=0x7fffec0848c0, decl=0x7fffec1100b0, body=0x7fffec25f980, id=2447, param_env=..., fty=...)
at src/librustc/middle/typeck/check/mod.rs:330
#13 0x00007ffff39766da in rustc::middle::typeck::check::check_item (ccx=0x7fffec0848c0, it=<optimized out>) at src/librustc/middle/typeck/check/mod.rs:575
#14 0x00007ffff397a460 in visit::walk_decl::h9cf355b08c4aabd1K1n::v0.10.pre () at src/librustc/middle/typeck/check/mod.rs:311
#15 0x00007ffff397a37e in visit::walk_stmt::h5901a3f261b3e26dy0n::v0.10.pre () at src/librustc/middle/typeck/check/mod.rs:312
#16 0x00007ffff397a113 in visit::walk_block::h45c060989eb1a99ftWn::v0.10.pre () at src/librustc/middle/typeck/check/mod.rs:312
#17 0x00007ffff397abbf in visit::walk_fn::he7254c7311eedc6e1ao::v0.10.pre () at src/librustc/middle/typeck/check/mod.rs:312
#18 0x00007ffff397b238 in visit::walk_method_helper::he88096d2d7de079fQfq::v0.10.pre () at src/librustc/middle/typeck/check/mod.rs:312
#19 0x00007ffff3978625 in visit::walk_item::h0447c6568c46391bN1p::v0.10.pre () at src/librustc/middle/typeck/check/mod.rs:312
#20 0x00007ffff397b4b4 in rustc::middle::typeck::check::check_item_types (ccx=0x7fffec0848c0, krate=<optimized out>) at src/librustc/middle/typeck/check/mod.rs:311
#21 0x00007ffff3a695fc in rustc::util::common::time<(),()> (what=..., do_it=<optimized out>, u=<optimized out>, f=<optimized out>) at src/librustc/util/common.rs:25
#22 0x00007ffff3a684b7 in rustc::middle::typeck::check_crate (tcx=0x7fffec2b1b90, krate=0x7ffff1f763c0, trait_map=...) at src/librustc/middle/typeck/mod.rs:463
#23 0x00007ffff3da21fa in rustc::driver::driver::phase_3_run_analysis_passes (sess=0x7fffec00ad00, krate=0x7ffff1f763c0, ast_map=...) at src/librustc/driver/driver.rs:316
#24 0x00007ffff3daa32f in rustc::driver::driver::compile_input (sess=0x7fffec00ad00, cfg=..., input=<optimized out>, outdir=<optimized out>, output=<optimized out>)
at src/librustc/driver/driver.rs:573
#25 0x00007ffff3dcefe5 in rustc::run_compiler (args=...) at src/librustc/lib.rs:339
#26 0x00007ffff3ddef5d in fn91262 () at src/librustc/lib.rs:426
#27 0x00007ffff3ddd622 in fn91110 () at src/librustc/lib.rs:388
#28 0x00007ffff3dd958b in task::TaskBuilder::try::closure () at src/librustc/lib.rs:374
#29 0x00007ffff319517c in fn7303 () at src/libnative/task.rs:103
#30 0x00007ffff7756588 in fn42893 () at src/libstd/unstable/finally.rs:45
#31 try_finally<(),(),()> (mutate=<optimized out>, drop=<optimized out>, try_fn=<optimized out>, finally_fn=<optimized out>) at src/libstd/unstable/finally.rs:99
#32 finally (self=0xf000007ffff55187, dtor=<optimized out>) at src/libstd/unstable/finally.rs:44
#33 fn42888 () at src/libstd/rt/task.rs:128
#34 0x00007ffff776031c in rust_try () from /usr/lib/libstd-31b43f22-0.10-pre.so
#35 0x00007ffff77564f1 in std::rt::task::Task::run (self=<optimized out>, f={void (void)} 0x7ffff1f77b98) at src/libstd/rt/local.rs:30
#36 0x00007ffff3195003 in fn7279 () at src/libnative/task.rs:103
#37 0x00007ffff7759d24 in rt::thread::thread_start::h9d943e1fec71bd92kSc::v0.10.pre () at src/libstd/rt/thread.rs:48
#38 0x00007ffff26a30a2 in start_thread () from /usr/lib/libpthread.so.0
#39 0x00007ffff2ea2d1d in clone () from /usr/lib/libc.so.6
Metadata
Metadata
Assignees
Labels
No labels