Skip to content

rust-lang/rust: guide recommends disabling proc macro server. we should make it work #9201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Tracked by #8915
lf- opened this issue Jun 10, 2021 · 4 comments · Fixed by #11956
Closed
Tracked by #8915

rust-lang/rust: guide recommends disabling proc macro server. we should make it work #9201

lf- opened this issue Jun 10, 2021 · 4 comments · Fixed by #11956
Labels
A-config configuration A-macro macro expansion

Comments

@lf-
Copy link
Contributor

lf- commented Jun 10, 2021

{
    "rust-analyzer.checkOnSave.overrideCommand": [
        "./x.py",
        "check",
        "--json-output"
    ],
    "rust-analyzer.rustfmt.overrideCommand": [
      "./build/x86_64-unknown-linux-gnu/stage0/bin/rustfmt"
    ],
    "rust-analyzer.cargo.runBuildScripts": false,
    // NOTE: Yes this is the opposite of the recommended configuration, but that config is probably suggested due to this as yet unfiled bug!!
    "rust-analyzer.procMacro.enable": true
}

Opened compiler/rustc_hir/src/hir.rs and had the proc macro server segfault. I have #9047 applied locally, so I hope it's not that ABI thing but I cannot promise it.

Rust version rustc 1.54.0-nightly (657bc0188 2021-05-31).

Although I think the following things are probably useless/uninformative, I'll give them anyway.

Backtrace of one of the segfaults

Core was generated by `/home/jade/dev/rust-analyzer/target/release/rust-analyzer proc-macro'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f2f089385aa in __memmove_avx_unaligned_erms () from /usr/lib/libc.so.6
=> 0x00007f2f089385aa <__memmove_avx_unaligned_erms+154>:	48 8b 4c 16 f8	mov    rcx,QWORD PTR [rsi+rdx*1-0x8]
warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/jade/dev/rust/target/debug/deps/libcargo_test_macro-9f841b7b0695698d.so.
Use `info auto-load python-scripts [REGEXP]' to list them.
(gdb) bt
#0  0x00007f2f089385aa in __memmove_avx_unaligned_erms () from /usr/lib/libc.so.6
#1  0x000055dea0d148be in _$LT$proc_macro_srv..proc_macro..bridge..buffer..Buffer$LT$T$GT$$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$T$GT$$GT$$GT$::from::extend_from_slice::h6ade0e4a8360cfd5 ()
#2  0x00007f2f03427e8b in proc_macro::bridge::buffer::Buffer::extend_from_slice () at library/proc_macro/src/bridge/buffer.rs:99
#3  proc_macro::bridge::buffer::{{impl}}::write_all ()
    at library/proc_macro/src/bridge/buffer.rs:129
#4  proc_macro::bridge::rpc::{{impl}}::encode<()> ()
    at library/proc_macro/src/bridge/rpc.rs:212
#5  proc_macro::bridge::rpc::{{impl}}::encode<()> ()
    at library/proc_macro/src/bridge/rpc.rs:227
#6  proc_macro::bridge::client::{{impl}}::new::{{closure}} ()
    at library/proc_macro/src/bridge/client.rs:242
#7  proc_macro::bridge::client::{{impl}}::with::{{closure}} () at library/proc_macro/src/bridge/client.rs:336
#8  proc_macro::bridge::client::{{impl}}::with::{{closure}}::{{closure}} ()
    at library/proc_macro/src/bridge/client.rs:293
#9  proc_macro::bridge::scoped_cell::ScopedCell::replace ()
    at library/proc_macro/src/bridge/scoped_cell.rs:75
#10 proc_macro::bridge::client::{{impl}}::with::{{closure}} () at library/proc_macro/src/bridge/client.rs:291
--Type  for more, q to quit, c to continue without paging--c
#11 std::thread::local::LocalKey::try_with,closure-0,proc_macro::bridge::client::Ident> () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/thread/local.rs:400
#12 std::thread::local::LocalKey::with,closure-0,proc_macro::bridge::client::Ident> () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/thread/local.rs:376
#13 proc_macro::bridge::client::BridgeState::with () at library/proc_macro/src/bridge/client.rs:290
#14 proc_macro::bridge::Bridge::with () at library/proc_macro/src/bridge/client.rs:329
#15 proc_macro::bridge::client::Ident::new () at library/proc_macro/src/bridge/client.rs:237
#16 0x00007f2f033e55e4 in proc_macro2::imp::Ident::new (string=..., span=...) at /home/jade/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.24/src/wrapper.rs:668
#17 0x00007f2f033ea969 in proc_macro2::Ident::new (string=..., span=...) at /home/jade/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.24/src/lib.rs:895
#18 0x00007f2f031a4de0 in synstructure::sanitize_ident (s=...) at /home/jade/.cargo/registry/src/github.com-1ecc6299db9ec823/synstructure-0.12.4/src/lib.rs:261
#19 0x00007f2f031a90d4 in synstructure::Structure::impl_internal (self=0x7ffdf8ce56f0, path=..., body=..., safety=..., mode=...) at /home/jade/.cargo/registry/src/github.com-1ecc6299db9ec823/synstructure-0.12.4/src/lib.rs:1967
#20 0x00007f2f03144c06 in synstructure::Structure::bound_impl (self=0x7ffdf8ce56f0, path=..., body=...) at /home/jade/.cargo/registry/src/github.com-1ecc6299db9ec823/synstructure-0.12.4/src/lib.rs:1724
#21 0x00007f2f03126007 in rustc_macros::serialize::decodable_body (s=..., decoder_ty=...) at compiler/rustc_macros/src/serialize.rs:98
#22 0x00007f2f031245da in rustc_macros::serialize::decodable_derive (s=...) at compiler/rustc_macros/src/serialize.rs:32
#23 0x00007f2f0315e40b in rustc_macros::Decodable (i=...) at /home/jade/.cargo/registry/src/github.com-1ecc6299db9ec823/synstructure-0.12.4/src/macros.rs:100
#24 0x00007f2f0314f54e in core::ops::function::FnOnce::call_once proc_macro::TokenStream,(proc_macro::TokenStream)> () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/core/src/ops/function.rs:227
#25 0x00007f2f03129ef6 in proc_macro::bridge::client::{{impl}}::expand1::run::{{closure}} proc_macro::TokenStream> (input=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:410
#26 0x00007f2f03129593 in proc_macro::bridge::client::run_client::{{closure}}::{{closure}} () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:377
#27 0x00007f2f0315b0d7 in proc_macro::bridge::scoped_cell::{{impl}}::set::{{closure}} () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/scoped_cell.rs:80
#28 0x00007f2f0315b633 in proc_macro::bridge::scoped_cell::ScopedCell::replace (self=0x55dea275efe8, replacement=..., f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/scoped_cell.rs:75
#29 0x00007f2f0315b0b4 in proc_macro::bridge::scoped_cell::ScopedCell::set (self=0x55dea275efe8, value=..., f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/scoped_cell.rs:80
#30 0x00007f2f03129d8c in proc_macro::bridge::client::{{impl}}::enter::{{closure}}<(),closure-0> (state=0x55dea275efe8) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:325
#31 0x00007f2f0313a6ef in std::thread::local::LocalKey>::try_with,closure-1,()> (self=0x7f2f035fe430, f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/thread/local.rs:400
#32 0x00007f2f0313a27a in std::thread::local::LocalKey>::with,closure-1,()> (self=0x7f2f035fe430, f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/thread/local.rs:376
#33 0x00007f2f0311874a in proc_macro::bridge::Bridge::enter<(),closure-0> (self=..., f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:325
#34 0x00007f2f031293b4 in proc_macro::bridge::client::run_client::{{closure}} () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:370
#35 0x00007f2f0310cef0 in std::panic::{{impl}}::call_once<(),closure-0> (self=..., _args=()) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/panic.rs:347
#36 0x00007f2f03140bba in std::panicking::try::do_call,()> (data=0x7ffdf8ce6478) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/panicking.rs:401
#37 0x00007f2f03140c9d in __rust_try () from /home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so
#38 0x00007f2f03140af1 in std::panicking::try<(),std::panic::AssertUnwindSafe> (f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/panicking.rs:365
#39 0x00007f2f0310cf20 in std::panic::catch_unwind,()> (f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/std/src/panic.rs:434
#40 0x00007f2f0312929f in proc_macro::bridge::client::run_client (bridge=..., f=...) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:369
#41 0x00007f2f03129eac in proc_macro::bridge::client::{{impl}}::expand1::run proc_macro::TokenStream> (bridge=..., f=0x7f2f0315e1d0 ) at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/proc_macro/src/bridge/client.rs:410
#42 0x000055dea0d1a3f6 in proc_macro_srv::proc_macro::bridge::server::run_server ()
#43 0x000055dea0cffd78 in proc_macro_srv::dylib::Expander::expand ()
#44 0x000055dea0cf3210 in proc_macro_srv::ProcMacroSrv::expand ()
#45 0x000055dea0ced084 in proc_macro_srv::cli::run ()
#46 0x000055dea0cd366a in rust_analyzer::main ()
#47 0x000055dea0cab243 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#48 0x000055dea0cd6649 in std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::ha24510cfe1a368c5 ()
#49 0x000055dea1ac19b9 in core::ops::function::impls::{{impl}}::call_once<(),Fn<()>> () at /rustc/657bc01888e6297257655585f9c475a0801db6d2/library/core/src/ops/function.rs:259
#50 std::panicking::try::do_call<&Fn<()>,i32> () at library/std/src/panicking.rs:401
#51 std::panicking::try> () at library/std/src/panicking.rs:365
#52 std::panic::catch_unwind<&Fn<()>,i32> () at library/std/src/panic.rs:434
#53 std::rt::lang_start_internal () at library/std/src/rt.rs:34
#54 0x000055dea0cd5c42 in main ()
Ugly r-a request logs. maybe useful? unsure

[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"macro_body":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" A fixed-size bitset type with a dense representation.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" NOTE: Use [`GrowableBitSet`] if you need support for resizing after creation.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" `T` is an index type, typically a newtyped `usize` wrapper, but it can also\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" just be `usize`.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" All operations that involve an element will panic if the element is equal\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" to or greater than the domain size. All operations that involve two bitsets\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" will panic if the bitsets have differing domain sizes.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Ident":{"text":"pub","id":0}}},{"Leaf":{"Ident":{"text":"struct","id":1}}},{"Leaf":{"Ident":{"text":"BitSet","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":3}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone","id":5}}},{"Subtree":{"delimiter":{"id":6,"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"domain_size","id":7}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":8}}},{"Leaf":{"Ident":{"text":"usize","id":9}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":10}}},{"Leaf":{"Ident":{"text":"words","id":11}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":12}}},{"Leaf":{"Ident":{"text":"Vec","id":13}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":14}}},{"Leaf":{"Ident":{"text":"Word","id":15}}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":16}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":17}}},{"Leaf":{"Ident":{"text":"marker","id":18}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":19}}},{"Leaf":{"Ident":{"text":"PhantomData","id":20}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":21}}},{"Leaf":{"Ident":{"text":"T","id":22}}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":23}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":24}}}]}}]},"macro_name":"Decodable","attributes":null,"lib":"/home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so","env":[["CARGO_PKG_LICENSE",""],["CARGO_PKG_LICENSE_FILE",""],["CARGO_PKG_DESCRIPTION",""],["CARGO_PKG_NAME","rustc_index"],["CARGO_PKG_VERSION_MAJOR","0"],["CARGO_MANIFEST_DIR","/home/jade/dev/rust/compiler/rustc_index"],["CARGO_PKG_VERSION","0.0.0"],["CARGO_PKG_VERSION_PATCH","0"],["CARGO_PKG_AUTHORS","The Rust Project Developers"],["CARGO","cargo"],["CARGO_PKG_VERSION_MINOR","0"],["CARGO_PKG_VERSION_PRE",""],["CARGO_PKG_REPOSITORY",""]]}}
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"expansion":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"allow"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"non_upper_case_globals"}}}]}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"hidden"}}}]}}]}},{"Leaf":{"Ident":{"text":"const"}}},{"Leaf":{"Ident":{"text":"_DERIVE_rustc_serialize_Decodable_D_FOR_BitSet"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"impl"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"for"}}},{"Leaf":{"Ident":{"text":"BitSet","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"where"}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"fn"}}},{"Leaf":{"Ident":{"text":"decode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"&","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"mut"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":"-","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Self"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Ident":{"text":"as"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Error"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"BitSet\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"3usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"BitSet","id":2}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"domain_size","id":7}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"domain_size\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"0usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"words","id":11}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"words\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"1usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"marker","id":18}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"marker\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"2usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}}]}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}}]}}]}}]}},{"Leaf":{"Punct":{"char":";","spacing":"Alone"}}}]}}}
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"macro_body":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" A fixed-size bitset type with a dense representation.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" NOTE: Use [`GrowableBitSet`] if you need support for resizing after creation.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" `T` is an index type, typically a newtyped `usize` wrapper, but it can also\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" just be `usize`.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" All operations that involve an element will panic if the element is equal\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" to or greater than the domain size. All operations that involve two bitsets\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" will panic if the bitsets have differing domain sizes.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Ident":{"text":"pub","id":0}}},{"Leaf":{"Ident":{"text":"struct","id":1}}},{"Leaf":{"Ident":{"text":"BitSet","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":3}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone","id":5}}},{"Subtree":{"delimiter":{"id":6,"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"domain_size","id":7}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":8}}},{"Leaf":{"Ident":{"text":"usize","id":9}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":10}}},{"Leaf":{"Ident":{"text":"words","id":11}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":12}}},{"Leaf":{"Ident":{"text":"Vec","id":13}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":14}}},{"Leaf":{"Ident":{"text":"Word","id":15}}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":16}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":17}}},{"Leaf":{"Ident":{"text":"marker","id":18}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":19}}},{"Leaf":{"Ident":{"text":"PhantomData","id":20}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":21}}},{"Leaf":{"Ident":{"text":"T","id":22}}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":23}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":24}}}]}}]},"macro_name":"Encodable","attributes":null,"lib":"/home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so","env":[["CARGO_PKG_LICENSE",""],["CARGO_PKG_LICENSE_FILE",""],["CARGO_PKG_DESCRIPTION",""],["CARGO_PKG_NAME","rustc_index"],["CARGO_PKG_VERSION_MAJOR","0"],["CARGO_MANIFEST_DIR","/home/jade/dev/rust/compiler/rustc_index"],["CARGO_PKG_VERSION","0.0.0"],["CARGO_PKG_VERSION_PATCH","0"],["CARGO_PKG_AUTHORS","The Rust Project Developers"],["CARGO","cargo"],["CARGO_PKG_VERSION_MINOR","0"],["CARGO_PKG_VERSION_PRE",""],["CARGO_PKG_REPOSITORY",""]]}}
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"expansion":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"allow"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"non_upper_case_globals"}}}]}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"hidden"}}}]}}]}},{"Leaf":{"Ident":{"text":"const"}}},{"Leaf":{"Ident":{"text":"_DERIVE_rustc_serialize_Encodable_E_FOR_BitSet"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"impl"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"for"}}},{"Leaf":{"Ident":{"text":"BitSet","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"where"}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"fn"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Punct":{"char":"&","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"self"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"&","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"mut"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":"-","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Ident":{"text":"as"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Error"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"BitSet\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"3usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":"*","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"self"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"BitSet","id":2}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"domain_size","id":7}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_0"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"words","id":11}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_1"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"marker","id":18}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_2"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"domain_size\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"0usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_0"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"words\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"1usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_1"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"marker\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"2usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_2"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}}]}}]}}]}}]}}]}}]}}]}}]}},{"Leaf":{"Punct":{"char":";","spacing":"Alone"}}}]}}}
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"macro_body":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" A fixed-size 2D bit matrix type with a dense representation.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" `R` and `C` are index types used to identify rows and columns respectively;\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" typically newtyped `usize` wrappers, but they can also just be `usize`.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" All operations that involve a row and/or column index will panic if the\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" index exceeds the relevant bound.\""}}}]}},{"Leaf":{"Ident":{"text":"pub","id":0}}},{"Leaf":{"Ident":{"text":"struct","id":1}}},{"Leaf":{"Ident":{"text":"BitMatrix","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":3}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":5}}},{"Leaf":{"Ident":{"text":"Idx","id":6}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":7}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":9}}},{"Leaf":{"Ident":{"text":"Idx","id":10}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone","id":11}}},{"Subtree":{"delimiter":{"id":12,"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"num_rows","id":13}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":14}}},{"Leaf":{"Ident":{"text":"usize","id":15}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":16}}},{"Leaf":{"Ident":{"text":"num_columns","id":17}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":18}}},{"Leaf":{"Ident":{"text":"usize","id":19}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":20}}},{"Leaf":{"Ident":{"text":"words","id":21}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":22}}},{"Leaf":{"Ident":{"text":"Vec","id":23}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":24}}},{"Leaf":{"Ident":{"text":"Word","id":25}}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":26}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":27}}},{"Leaf":{"Ident":{"text":"marker","id":28}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":29}}},{"Leaf":{"Ident":{"text":"PhantomData","id":30}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":31}}},{"Subtree":{"delimiter":{"id":32,"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"R","id":33}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":34}}},{"Leaf":{"Ident":{"text":"C","id":35}}}]}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":36}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":37}}}]}}]},"macro_name":"Decodable","attributes":null,"lib":"/home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so","env":[["CARGO_PKG_LICENSE",""],["CARGO_PKG_LICENSE_FILE",""],["CARGO_PKG_DESCRIPTION",""],["CARGO_PKG_NAME","rustc_index"],["CARGO_PKG_VERSION_MAJOR","0"],["CARGO_MANIFEST_DIR","/home/jade/dev/rust/compiler/rustc_index"],["CARGO_PKG_VERSION","0.0.0"],["CARGO_PKG_VERSION_PATCH","0"],["CARGO_PKG_AUTHORS","The Rust Project Developers"],["CARGO","cargo"],["CARGO_PKG_VERSION_MINOR","0"],["CARGO_PKG_VERSION_PRE",""],["CARGO_PKG_REPOSITORY",""]]}}
[DEBUG proc_macro_api::msg] > 
{"ExpansionMacro":{"expansion":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"allow"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"non_upper_case_globals"}}}]}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"hidden"}}}]}}]}},{"Leaf":{"Ident":{"text":"const"}}},{"Leaf":{"Ident":{"text":"_DERIVE_rustc_serialize_Decodable_D_FOR_BitMatrix"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"impl"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Idx","id":6}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Idx","id":10}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"for"}}},{"Leaf":{"Ident":{"text":"BitMatrix","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"where"}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"fn"}}},{"Leaf":{"Ident":{"text":"decode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"&","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"mut"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":"-","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Self"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__D"}}},{"Leaf":{"Ident":{"text":"as"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Error"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"BitMatrix\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"4usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"BitMatrix","id":2}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"num_rows","id":13}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"num_rows\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"0usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"num_columns","id":17}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"num_columns\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"1usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"words","id":21}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"words\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"2usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"marker","id":28}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"read_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__decoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"marker\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"3usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Decodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"decode"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__res"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__res"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}}]}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}}]}}]}}]}},{"Leaf":{"Punct":{"char":";","spacing":"Alone"}}}]}}}
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"macro_body":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" A fixed-size 2D bit matrix type with a dense representation.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" `R` and `C` are index types used to identify rows and columns respectively;\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" typically newtyped `usize` wrappers, but they can also just be `usize`.\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" All operations that involve a row and/or column index will panic if the\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" index exceeds the relevant bound.\""}}}]}},{"Leaf":{"Ident":{"text":"pub","id":0}}},{"Leaf":{"Ident":{"text":"struct","id":1}}},{"Leaf":{"Ident":{"text":"BitMatrix","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":3}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":5}}},{"Leaf":{"Ident":{"text":"Idx","id":6}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":7}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":9}}},{"Leaf":{"Ident":{"text":"Idx","id":10}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone","id":11}}},{"Subtree":{"delimiter":{"id":12,"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"num_rows","id":13}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":14}}},{"Leaf":{"Ident":{"text":"usize","id":15}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":16}}},{"Leaf":{"Ident":{"text":"num_columns","id":17}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":18}}},{"Leaf":{"Ident":{"text":"usize","id":19}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":20}}},{"Leaf":{"Ident":{"text":"words","id":21}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":22}}},{"Leaf":{"Ident":{"text":"Vec","id":23}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":24}}},{"Leaf":{"Ident":{"text":"Word","id":25}}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":26}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":27}}},{"Leaf":{"Ident":{"text":"marker","id":28}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":29}}},{"Leaf":{"Ident":{"text":"PhantomData","id":30}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":31}}},{"Subtree":{"delimiter":{"id":32,"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"R","id":33}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":34}}},{"Leaf":{"Ident":{"text":"C","id":35}}}]}},{"Leaf":{"Punct":{"char":">","spacing":"Joint","id":36}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone","id":37}}}]}}]},"macro_name":"Encodable","attributes":null,"lib":"/home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so","env":[["CARGO_PKG_LICENSE",""],["CARGO_PKG_LICENSE_FILE",""],["CARGO_PKG_DESCRIPTION",""],["CARGO_PKG_NAME","rustc_index"],["CARGO_PKG_VERSION_MAJOR","0"],["CARGO_MANIFEST_DIR","/home/jade/dev/rust/compiler/rustc_index"],["CARGO_PKG_VERSION","0.0.0"],["CARGO_PKG_VERSION_PATCH","0"],["CARGO_PKG_AUTHORS","The Rust Project Developers"],["CARGO","cargo"],["CARGO_PKG_VERSION_MINOR","0"],["CARGO_PKG_VERSION_PRE",""],["CARGO_PKG_REPOSITORY",""]]}}
[DEBUG proc_macro_api::msg] > 
{"ExpansionMacro":{"expansion":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"allow"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"non_upper_case_globals"}}}]}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"hidden"}}}]}}]}},{"Leaf":{"Ident":{"text":"const"}}},{"Leaf":{"Ident":{"text":"_DERIVE_rustc_serialize_Encodable_E_FOR_BitMatrix"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"impl"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Idx","id":6}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Idx","id":10}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"for"}}},{"Leaf":{"Ident":{"text":"BitMatrix","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"where"}}},{"Leaf":{"Ident":{"text":"R","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"C","id":8}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"fn"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Punct":{"char":"&","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"self"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"&","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"mut"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":"-","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Ident":{"text":"as"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Error"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"BitMatrix\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"4usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":"*","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"self"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"BitMatrix","id":2}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"num_rows","id":13}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_0"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"num_columns","id":17}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_1"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"words","id":21}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_2"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"marker","id":28}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"ref"}}},{"Leaf":{"Ident":{"text":"__binding_3"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"num_rows\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"0usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_0"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"num_columns\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"1usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_1"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"words\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"2usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_2"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Leaf":{"Ident":{"text":"match"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encoder"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"emit_struct_field"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\"marker\""}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"3usize"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}},{"Leaf":{"Punct":{"char":"|","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"rustc_serialize"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Encodable"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__E"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"encode"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__binding_3"}}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"__encoder"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}},{"Subtree":{"delimiter":{"kind":"Brace"},"token_trees":[{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Ok"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":"=","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"return"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"std"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Result"}}},{"Leaf":{"Punct":{"char":":","spacing":"Joint"}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone"}}},{"Leaf":{"Ident":{"text":"Err"}}},{"Subtree":{"delimiter":{"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"__err"}}}]}},{"Leaf":{"Punct":{"char":",","spacing":"Alone"}}}]}}]}}]}}]}}]}}]}}]}}]}}]}},{"Leaf":{"Punct":{"char":";","spacing":"Alone"}}}]}}}
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"macro_body":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" A fixed-sized bitset type represented by an integer type. Indices outwith than the range\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" representable by `T` are considered set.\""}}}]}},{"Leaf":{"Ident":{"text":"pub","id":0}}},{"Leaf":{"Ident":{"text":"struct","id":1}}},{"Leaf":{"Ident":{"text":"FiniteBitSet","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":3}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":5}}},{"Leaf":{"Ident":{"text":"FiniteBitSetTy","id":6}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone","id":7}}},{"Subtree":{"delimiter":{"id":8,"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"pub","id":9}}},{"Leaf":{"Ident":{"text":"T","id":10}}}]}},{"Leaf":{"Punct":{"char":";","spacing":"Alone","id":11}}}]},"macro_name":"Decodable","attributes":null,"lib":"/home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so","env":[["CARGO_PKG_LICENSE",""],["CARGO_PKG_LICENSE_FILE",""],["CARGO_PKG_DESCRIPTION",""],["CARGO_PKG_NAME","rustc_index"],["CARGO_PKG_VERSION_MAJOR","0"],["CARGO_MANIFEST_DIR","/home/jade/dev/rust/compiler/rustc_index"],["CARGO_PKG_VERSION","0.0.0"],["CARGO_PKG_VERSION_PATCH","0"],["CARGO_PKG_AUTHORS","The Rust Project Developers"],["CARGO","cargo"],["CARGO_PKG_VERSION_MINOR","0"],["CARGO_PKG_VERSION_PRE",""],["CARGO_PKG_REPOSITORY",""]]}}
[WARN hir_expand::db] fail on macro_parse: (reason: ProcMacroError(Unknown("Empty result")) macro_call: /// A fixed-sized bitset type represented by an integer type. Indices outwith than the range
/// representable by `T` are considered set.
#[derive(Copy, Clone, Eq, PartialEq, Decodable,
 Encodable)]
pub struct FiniteBitSet(pub T);) parents: 
[DEBUG proc_macro_api::msg] > {"ExpansionMacro":{"macro_body":{"delimiter":null,"token_trees":[{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" A fixed-sized bitset type represented by an integer type. Indices outwith than the range\""}}}]}},{"Leaf":{"Punct":{"char":"#","spacing":"Alone"}}},{"Subtree":{"delimiter":{"kind":"Bracket"},"token_trees":[{"Leaf":{"Ident":{"text":"doc"}}},{"Leaf":{"Punct":{"char":"=","spacing":"Alone"}}},{"Leaf":{"Literal":{"text":"\" representable by `T` are considered set.\""}}}]}},{"Leaf":{"Ident":{"text":"pub","id":0}}},{"Leaf":{"Ident":{"text":"struct","id":1}}},{"Leaf":{"Ident":{"text":"FiniteBitSet","id":2}}},{"Leaf":{"Punct":{"char":"<","spacing":"Alone","id":3}}},{"Leaf":{"Ident":{"text":"T","id":4}}},{"Leaf":{"Punct":{"char":":","spacing":"Alone","id":5}}},{"Leaf":{"Ident":{"text":"FiniteBitSetTy","id":6}}},{"Leaf":{"Punct":{"char":">","spacing":"Alone","id":7}}},{"Subtree":{"delimiter":{"id":8,"kind":"Parenthesis"},"token_trees":[{"Leaf":{"Ident":{"text":"pub","id":9}}},{"Leaf":{"Ident":{"text":"T","id":10}}}]}},{"Leaf":{"Punct":{"char":";","spacing":"Alone","id":11}}}]},"macro_name":"Encodable","attributes":null,"lib":"/home/jade/dev/rust/target/debug/deps/librustc_macros-4d53846fbb49253f.so","env":[["CARGO_PKG_LICENSE",""],["CARGO_PKG_LICENSE_FILE",""],["CARGO_PKG_DESCRIPTION",""],["CARGO_PKG_NAME","rustc_index"],["CARGO_PKG_VERSION_MAJOR","0"],["CARGO_MANIFEST_DIR","/home/jade/dev/rust/compiler/rustc_index"],["CARGO_PKG_VERSION","0.0.0"],["CARGO_PKG_VERSION_PATCH","0"],["CARGO_PKG_AUTHORS","The Rust Project Developers"],["CARGO","cargo"],["CARGO_PKG_VERSION_MINOR","0"],["CARGO_PKG_VERSION_PRE",""],["CARGO_PKG_REPOSITORY",""]]}}
[ERROR proc_macro_api::process] proc macro server crashed, server process state: Ok(Some(ExitStatus(ExitStatus(139)))), server request error: Os { code: 32, 
kind: BrokenPipe, message: "Broken pipe" }

cc #8915

@lnicola
Copy link
Member

lnicola commented Jun 10, 2021

That extend_from_slice sounds like #9047 (comment).

@lf-
Copy link
Contributor Author

lf- commented Jun 10, 2021

That extend_from_slice sounds like #9047 (comment).

Oh, shoot, you're probably right. Still, this recommendation to turn off proc macro server has been in the dev guide for at least a few months, and it should be investigated why it is needed, as it worsens dev experience.

@flodiebold
Copy link
Member

Enabling proc macros requires us to compile the proc macros, and AFAIK currently there's no way to override the cargo check command we do for that.

@lf- lf- changed the title rust-lang/rust: proc macro server crashes rust-lang/rust: guide recommends disabling proc macro server. we should make it work Jun 10, 2021
@Veykril Veykril added A-macro macro expansion A-config configuration labels Dec 14, 2021
@eddyb
Copy link
Member

eddyb commented Jan 23, 2022

Current failure modes I've observed:

  • this is undebuggable because RA doesn't show the errors occurring in the build script/proc macro build, only the summary with the number of errors, and the crate
  • since this is a plain cargo check command, AFAICT, the default toolchain has to be recent enough - rustup update nightly made some 2 (unknown) core errors go away
  • using cargo check, I've been able to observe the biggest issue of them all: because of the custom sysroot shenanigans, cargo check manages to add library/core as a dependency to a bunch of crates (via rustc-std-workspace-core AFAICT), while (nightly) rustc still loads (nightly) sysroot core

But really, regardless of whether RA should run cargo check or x.py check (with some way to let RA know the location of the proc macros, presumably), a lot of the above don't even apply if RA doesn't attempt to cargo check everything.

env CFG_RELEASE= CFG_RELEASE_CHANNEL= RUSTC_INSTALL_BINDIR= cargo check -p rustc_driver

This succeeded for me. It might not always, but it has a better chance than cargo check.
So RA could simply add an option for "crate to cargo check for build scripts/proc macros", and one for "env vars for build scripts/proc macros" (tho that can be worked around in the compiler source as well, if we want to make the end vars optional).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-config configuration A-macro macro expansion
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants