Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

'No span found for use glob' panic in projects using actix-net, rocket #1117

Closed
mati865 opened this issue Nov 8, 2018 · 15 comments
Closed

Comments

@mati865
Copy link
Contributor

mati865 commented Nov 8, 2018

$ rustup show
Default host: x86_64-unknown-linux-gnu

nightly-x86_64-unknown-linux-gnu (default)
rustc 1.32.0-nightly (25a42b2ce 2018-11-07)

VSCode error:

{
	"resource": "/home/mateusz/tmp/actix/Cargo.toml",
	"owner": "_generated_diagnostic_collection_name_#0",
	"code": null,
	"severity": 8,
	"message": "Could not compile `actix-net`.\nprocess didn't exit successfully: `/home/mateusz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rls --crate-name actix_net /home/mateusz/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/actix-net-0.1.1/src/lib.rs --color never --crate-type lib --emit=dep-info,metadata -C debuginfo=2 --cfg 'feature=\"cell\"' --cfg 'feature=\"default\"' -C metadata=11a3699dc7f12094 -C extra-filename=-11a3699dc7f12094 --out-dir /home/mateusz/tmp/actix/target/rls/debug/deps -L dependency=/home/mateusz/tmp/actix/target/rls/debug/deps --extern actix=/home/mateusz/tmp/actix/target/rls/debug/deps/libactix-56c9c378949e40e1.rmeta --extern bytes=/home/mateusz/tmp/actix/target/rls/debug/deps/libbytes-c10de8c707b4184d.rmeta --extern futures=/home/mateusz/tmp/actix/target/rls/debug/deps/libfutures-41c70c13227513c2.rmeta --extern log=/home/mateusz/tmp/actix/target/rls/debug/deps/liblog-bb0b02840df5f44c.rmeta --extern mio=/home/mateusz/tmp/actix/target/rls/debug/deps/libmio-4c21c072a9ad6c56.rmeta --extern net2=/home/mateusz/tmp/actix/target/rls/debug/deps/libnet2-5f1c0d871f28dfc4.rmeta --extern num_cpus=/home/mateusz/tmp/actix/target/rls/debug/deps/libnum_cpus-8bbc13cd502f6ace.rmeta --extern slab=/home/mateusz/tmp/actix/target/rls/debug/deps/libslab-394743c38aee0f60.rmeta --extern tokio=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio-3b6c0aa0407f3181.rmeta --extern tokio_codec=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio_codec-23b7e755a4d6e632.rmeta --extern tokio_current_thread=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio_current_thread-fe823ae1ab1b683d.rmeta --extern tokio_io=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio_io-c2f60aa09c4b337d.rmeta --extern tokio_reactor=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio_reactor-22233287af986d7e.rmeta --extern tokio_tcp=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio_tcp-b85fb3bc697d8862.rmeta --extern tokio_timer=/home/mateusz/tmp/actix/target/rls/debug/deps/libtokio_timer-ba113e82bd3274a4.rmeta --extern tower_service=/home/mateusz/tmp/actix/target/rls/debug/deps/libtower_service-d7954b8b6e64ee6c.rmeta --extern trust_dns_proto=/home/mateusz/tmp/actix/target/rls/debug/deps/libtrust_dns_proto-3a287c96c136ea55.rmeta --extern trust_dns_resolver=/home/mateusz/tmp/actix/target/rls/debug/deps/libtrust_dns_resolver-efbf44a2be2d6b18.rmeta --cap-lints allow -L native=/home/mateusz/tmp/actix/target/rls/debug/build/backtrace-sys-a818c9761fbf472b/out --error-format=json --sysroot /home/mateusz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu` (exit code: 101)",
	"startLineNumber": 1,
	"startColumn": 1,
	"endLineNumber": 10000,
	"endColumn": 1
}

Following repository fails to build in VSCode/Atom but cargo check and cargo build work fine: https://github.com/mati865/rls_error

@nrc nrc added this to the Edition RC1 milestone Nov 9, 2018
@Xanewok
Copy link
Member

Xanewok commented Nov 9, 2018

Tried with rustc 1.32.0-nightly (13dab66a6 2018-11-05) but got the same result (manually executed rls with the failing invocation):

xanewok@faerun-dev:~/repos/rls (master)$ RUST_BACKTRACE=full RLS_RUSTC_SHIM=1 LD_LIBRARY_PATH=$(rustc --print sysroot)/lib rls --crate-name actix_net /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/actix-net-0.1.1/src/lib.rs --color never --crate-type lib --emit=dep-info,metadata -C debuginfo=2 --cfg 'feature="cell"' --cfg 'feature="default"' -C metadata=bf936ea3a844910b -C extra-filename=-bf936ea3a844910b --out-dir /home/xanewok/repos/rls_error/target/rls/debug/deps -L dependency=/home/xanewok/repos/rls_error/target/rls/debug/deps --extern actix=/home/xanewok/repos/rls_error/target/rls/debug/deps/libactix-6b59be1e8568ebe8.rmeta --extern bytes=/home/xanewok/repos/rls_error/target/rls/debug/deps/libbytes-5b8986f57783c2e0.rmeta --extern futures=/home/xanewok/repos/rls_error/target/rls/debug/deps/libfutures-cdc95047b35bc824.rmeta --extern log=/home/xanewok/repos/rls_error/target/rls/debug/deps/liblog-dc2a3c2106fe46c6.rmeta --extern mio=/home/xanewok/repos/rls_error/target/rls/debug/deps/libmio-d1647be4e24baed2.rmeta --extern net2=/home/xanewok/repos/rls_error/target/rls/debug/deps/libnet2-93a37f4fe8b90793.rmeta --extern num_cpus=/home/xanewok/repos/rls_error/target/rls/debug/deps/libnum_cpus-766a355dc3928044.rmeta --extern slab=/home/xanewok/repos/rls_error/target/rls/debug/deps/libslab-60a45eb50f683d2c.rmeta --extern tokio=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio-5b29b01d0919daa0.rmeta --extern tokio_codec=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio_codec-77ceadc6a0ea3eb6.rmeta --extern tokio_current_thread=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio_current_thread-a3035b8b7e7b9cf8.rmeta --extern tokio_io=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio_io-e57a27aeb777c65f.rmeta --extern tokio_reactor=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio_reactor-93b76c366057f321.rmeta --extern tokio_tcp=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio_tcp-c453b26c31058f09.rmeta --extern tokio_timer=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtokio_timer-a01e348bc4beb4d8.rmeta --extern tower_service=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtower_service-6d6f44425a6a6a04.rmeta --extern trust_dns_proto=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtrust_dns_proto-e4e9a2afca99320d.rmeta --extern trust_dns_resolver=/home/xanewok/repos/rls_error/target/rls/debug/deps/libtrust_dns_resolver-6fb0405b9b326bf2.rmeta --cap-lints allow -L native=/home/xanewok/repos/rls_error/target/rls/debug/build/backtrace-sys-e9e572801a97387d/out --error-format=json --sysroot /home/xanewok/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu
thread 'main' panicked at 'No span found for use glob', libcore/option.rs:1008:5
stack backtrace:
   0:     0x7f9831c2c6d3 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::hbd79793a3b908f71
                               at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:     0x7f9831c23e68 - std::sys_common::backtrace::_print::h241fb00d6b4d5958
                               at libstd/sys_common/backtrace.rs:71
   2:     0x7f9831c29144 - std::panicking::default_hook::{{closure}}::hfcc3fb149022522b
                               at libstd/sys_common/backtrace.rs:59
                               at libstd/panicking.rs:211
   3:     0x7f9831c28ead - std::panicking::default_hook::h7645eba0a2dfdecc
                               at libstd/panicking.rs:227
   4:     0x7f9833b647f1 - rustc::util::common::panic_hook::hb5633c6bf9f569b0
   5:     0x7f9831c29886 - std::panicking::rust_panic_with_hook::hab09aa7150861713
                               at libstd/panicking.rs:480
   6:     0x7f9831c293d1 - std::panicking::continue_panic_fmt::hae9373507296bba3
                               at libstd/panicking.rs:390
   7:     0x7f9831c292b5 - rust_begin_unwind
                               at libstd/panicking.rs:325
   8:     0x7f9831c5277c - core::panicking::panic_fmt::hbcf5d3404bd74249
                               at libcore/panicking.rs:77
   9:     0x7f9831c52892 - core::option::expect_failed::h255d54cf78c882ba
                               at libcore/option.rs:1008
  10:     0x7f98348db3c1 - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, O>>::process_use_tree::h625b451e1811ed24
  11:     0x7f98348e2a57 - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, O> as syntax::visit::Visitor<'l>>::visit_item::h771053f79bab0420
  12:     0x7f98348e580b - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, O> as syntax::visit::Visitor<'l>>::visit_item::h771053f79bab0420
  13:     0x7f98348e580b - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, O> as syntax::visit::Visitor<'l>>::visit_item::h771053f79bab0420
  14:     0x7f98348e580b - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, O> as syntax::visit::Visitor<'l>>::visit_item::h771053f79bab0420
  15:     0x7f98348dbc0b - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, O> as syntax::visit::Visitor<'l>>::visit_mod::h13b4fa240df11bc5
  16:     0x7f983493971c - <rustc_save_analysis::DumpHandler<'a> as rustc_save_analysis::SaveHandler>::save::he9ddcd0ede6fff6e
  17:     0x7f9834ce1795 - rustc::ty::context::tls::with_context::hca97b8ef8d14bb46
  18:     0x7f9834cb3710 - rustc_save_analysis::process_crate::hc3df532177fab922
  19:     0x7f9834c46da1 - rustc_driver::enable_save_analysis::{{closure}}::{{closure}}::h49878ee61ca4755c
  20:     0x7f9834c449c0 - rustc::util::common::time::hd90eab5f6a298d93
  21:     0x7f9834d33fcc - rustc_driver::enable_save_analysis::{{closure}}::hffb6565d19325c64
  22:     0x7f9834ce12d6 - rustc::ty::context::tls::with_context::ha4b82d01097a0852
  23:     0x7f9834cfb676 - rustc_driver::driver::compile_input::{{closure}}::hab11ffad74524e19
  24:     0x7f9834ce4ba4 - rustc::ty::context::tls::enter_context::he79077b196ec27c0
  25:     0x7f9834cb0001 - <std::thread::local::LocalKey<T>>::with::hd4e4c35dac84fae7
  26:     0x7f9834cee7a6 - rustc::ty::context::TyCtxt::create_and_enter::hc19887c1b4af6dd1
  27:     0x7f9834c32033 - rustc_driver::driver::compile_input::he169c84f70157060
  28:     0x7f9834d2eec4 - rustc_driver::run_compiler_with_pool::hf6044d0ca5fdf0b2
  29:     0x7f9834c2fd2b - rustc_driver::driver::spawn_thread_pool::heaf5c2f965bef0f1
  30:     0x7f9834d2def7 - rustc_driver::run_compiler::h557880b908a812eb
  31:     0x558f83151ee4 - <scoped_tls::ScopedKey<T>>::set::h14208fa93088ad6d
  32:     0x558f83158d02 - syntax::with_globals::hd7fa6a6e469fa732
  33:     0x7f9831c47809 - __rust_maybe_catch_panic
                               at libpanic_unwind/lib.rs:102
  34:     0x558f83159fd5 - rustc_driver::run::he518e19f1d0a85c7
  35:     0x558f8315652b - rls_rustc::run::ha3f7fa74883b1741
  36:     0x558f82533a32 - rls::main_inner::ha2599848de691fa1
  37:     0x558f825335c5 - rls::main::h45a5d0f8dd50a30d
  38:     0x558f825af142 - std::rt::lang_start::{{closure}}::hf64c232bf63bae7b
  39:     0x7f9831c29252 - std::panicking::try::do_call::h81dd4900b4880248
                               at libstd/rt.rs:59
                               at libstd/panicking.rs:310
  40:     0x7f9831c47809 - __rust_maybe_catch_panic
                               at libpanic_unwind/lib.rs:102
  41:     0x7f9831c29c23 - std::rt::lang_start_internal::h4089ee56d6ea6090
                               at libstd/panicking.rs:289
                               at libstd/panic.rs:398
                               at libstd/rt.rs:58
  42:     0x558f825354c4 - main
  43:     0x7f9830fafb96 - __libc_start_main
  44:     0x558f823f7028 - <unknown>
query stack during panic:
end of query stack

same as #1107.

Snippet from the STR repo:

use actix_web;
fn main() {
    println!("Hello, world!");
}

@nrc the most recent code that seems to have touched this is rust-lang/rust@c2bb7ca (part of rust-lang/rust#54145).

Is it because extern crates in the prelude do not have valid span and we can't record it while processing the use actix_web? (Thinking out loud, I don't know much about the internals there). (nvm it's failure with actix-net, not this repo)
Will try a rustc version before that PR to verify if that's the cause.

@mati865
Copy link
Contributor Author

mati865 commented Nov 9, 2018

Feel free to close it as a duplicate.
I tried runnig rls before but got only Unknown argument '--crate-name' error and the other issue didn't seem related to me.

FWIW Rust 2015 crate with actix fails the same way.

@Xanewok
Copy link
Member

Xanewok commented Nov 9, 2018

I tried runnig rls before but got only Unknown argument '--crate-name'

That's because rls disguises itself as rustc to work on stable, but needs to be passed RLS_RUSTC_SHIM=1 to work in this mode

@Xanewok Xanewok changed the title Actix-net doesn't build using rls, cargo build/check works 'No span found for use glob' panic in projects using actix-net, rocket Nov 9, 2018
@Xanewok
Copy link
Member

Xanewok commented Nov 9, 2018

It seems that the SA chokes on proc-macro output (happened also with a simple Rocket project from #1107).

Using a helper debug patch for Rust:

diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs
index 9bc3fbe7c2..7b84afb65e 100644
--- a/src/librustc_save_analysis/dump_visitor.rs
+++ b/src/librustc_save_analysis/dump_visitor.rs
@@ -1257,8 +1257,13 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
                 let sub_span =
                     self.span.sub_span_of_token(use_tree.span, token::BinOp(token::Star));
                 if !self.span.filter_generated(use_tree.span) {
-                    let span =
-                        self.span_from_span(sub_span.expect("No span found for use glob"));
+                    let span = self.span_from_span(match sub_span {
+                        Some(sp) => sp,
+                        None => {
+                            self.tcx.sess.span_warn(use_tree.span, "Error calculating sub_span_of_token for this `use_tree.span`");
+                            return;
+                        }
+                    });
                     self.dumper.import(&access, Import {
                         kind: ImportKind::GlobUse,
                         ref_id: None,

For actix-net 0.1.1 I got:

warning: Error calculating sub_span_of_token for this `use_tree.span`
  --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/actix-net-0.1.1/src/server/worker.rs:26:17
   |
26 | #[derive(Debug, Message)]
   |                 ^^^^^^^

warning: Error calculating sub_span_of_token for this `use_tree.span`
  --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/actix-net-0.1.1/src/server/mod.rs:17:10
   |
17 | #[derive(Message)]
   |          ^^^^^^^

warning: Error calculating sub_span_of_token for this `use_tree.span`
  --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/actix-net-0.1.1/src/server/mod.rs:21:10
   |
21 | #[derive(Message)]
   |          ^^^^^^^

--pretty=expanded output for `#[derive(Message]):

    mod _impl_act_pauseserver {
        use super::*;
        extern crate actix;
        impl actix::Message for PauseServer {
            type
            Result
            =
            ();
        }
    }

EDIT: And for pear_codegen 0.20 (failing crate from #1107, switched to errors):

error: Error calculating sub_span_of_token for this `use_tree.span`
  --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:68:32
   |
68 |             let new_inner_fn = quote_expr!(ecx, parse!($input, $block));
   |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
  --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:76:37
   |
76 |                 new_item.attrs.push(quote_attr!(ecx, #[inline]));
   |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
  --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:78:37
   |
78 |                 new_item.attrs.push(quote_attr!(ecx, #[inline(always)]));
   |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:177:24
    |
177 |             stmts.push(quote_stmt!(ecx, let $unique_ident = $param;).unwrap());
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:268:22
    |
268 |             false => quote_expr!(ecx, ::pear::ParseResult::Done($expr))
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:319:13
    |
319 |             quote_expr!(ecx, { $stmt })
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:323:17
    |
323 |                 quote_expr!(ecx, ::pear::ParseResult::Done($expr))
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:325:43
    |
325 |                 let mut streams: Vec<_> = quote_tokens!(ecx, $input,).into_iter()
    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:396:54
    |
396 |                 None => gen_expr(ecx, input, &wild, &quote_expr!(ecx, ()), VecDeque::new())
    |                                                      ^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:400:13
    |
400 |             quote_expr!(ecx, if $cond_expr { $new_block } else { $new_else })
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:408:54
    |
408 |                 None => gen_expr(ecx, input, &wild, &quote_expr!(ecx, ()), VecDeque::new())
    |                                                      ^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:412:13
    |
412 |             quote_expr!(ecx, if let $pat = $pat_expr { $new_block } else { $new_else })
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:436:13
    |
436 |             quote_expr!(ecx, ::pear::ParseResult::Done($expr))
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:441:13
    |
441 |             quote_expr!(ecx, ::pear::ParseResult::Done($expr))
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:449:9
    |
449 | /         quote_expr!(ecx,
450 | |             match $new_expr {
451 | |                 ::pear::ParseResult::Done($binding) => {
452 | |                     $rest
...   |
455 | |             }
456 | |         )
    | |_________^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:469:53
    |
469 |             let expr = gen_expr(ecx, input, &wild, &quote_expr!(ecx, ()), stmts);
    |                                                     ^^^^^^^^^^^^^^^^^^^^

error: Error calculating sub_span_of_token for this `use_tree.span`
   --> /home/xanewok/.cargo/registry/src/git.luolix.top-1ecc6299db9ec823/pear_codegen-0.0.20/src/lib.rs:491:48
    |
491 |                 stmts.push_front(ecx.stmt_expr(quote_expr!(ecx, ())));
    |                                                ^^^^^^^^^^^^^^^^^^^^

error: aborting due to 17 previous errors

--pretty=expanded output for quote_expr!(ecx, ()):

{
                                  use syntax::ext::quote::rt::*;
                                  let ext_cx = &*ecx;
                                  ::syntax::ext::quote::parse_expr_panic(&mut new_parser_from_tts(ext_cx.parse_sess(),
                                                                                                  ::syntax::ext::quote::unflatten({
                                                                                                                                      let _sp =
                                                                                                                                          ext_cx.call_site();
                                                                                                                                      let mut tt =
                                                                                                                                          ::std::vec::Vec::new();
                                                                                                                                      tt.push(::syntax::tokenstream::TokenTree::Token(_sp,
                                                                                                                                                                                      ::syntax::parse::token::OpenDelim(::syntax::parse::token::Paren)));
                                                                                                                                      tt.push(::syntax::tokenstream::TokenTree::Token(_sp,
                                                                                                                                                                                      ::syntax::parse::token::CloseDelim(::syntax::parse::token::Paren)));
                                                                                                                                      tt
                                                                                                                                  })))
                              }

@nrc
Copy link
Member

nrc commented Nov 11, 2018

This should be fixed by rust-lang/rust#55879

@nrc nrc closed this as completed Nov 11, 2018
pietroalbini added a commit to pietroalbini/rust that referenced this issue Nov 12, 2018
save-analysis: Don't panic for macro-generated use globs

Follow-up to rust-lang@c2bb7ca - as before, ignore the use globs in macro expansions.

Fixes rust-lang/rls#1117.
Closes rust-lang#55480.

r? @nrc
kennytm added a commit to kennytm/rust that referenced this issue Nov 13, 2018
save-analysis: Don't panic for macro-generated use globs

Follow-up to rust-lang@c2bb7ca - as before, ignore the use globs in macro expansions.

Fixes rust-lang/rls#1117.
Closes rust-lang#55480.

r? @nrc
@norru
Copy link

norru commented Nov 14, 2018

@nrc @Xanewok

Still broken on rustc 1.32.0-nightly (9fefb6766 2018-11-13) running on x86_64-unknown-linux-gnu

I am not able to reopen this.

note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.32.0-nightly (9fefb6766 2018-11-13) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden

@mati865
Copy link
Contributor Author

mati865 commented Nov 14, 2018

@norru you have to wait for fixed nightly, it was only merged today so the next nightly should be fine.

@norru
Copy link

norru commented Nov 14, 2018

The bug was marked closed. This should happen when the fix is released :)

@motecshine
Copy link

update last day nightly version vscode rework for me

@norru
Copy link

norru commented Nov 16, 2018

@motecshine are you building RLS from source? Because for me rustup update is not doing it.

@motecshine
Copy link

@norru update with rustup

➜  ~ rustup --version
rustup 1.14.0 (1e51b07cc 2018-10-04)

➜  ~ rustc --version
rustc 1.32.0-nightly (6b9b97bd9 2018-11-15)

@norru
Copy link

norru commented Nov 18, 2018

That's rustc, I have no problems with rustc. How about rls?

nico@devuan-3xS:~/Projects/itadinanta/ofx-rs$ rustup --version
rustup 1.14.0 (1e51b07cc 2018-10-04)
nico@devuan-3xS:~/Projects/itadinanta/ofx-rs$ rustc --version
rustc 1.32.0-nightly (f37247f88 2018-11-17)
nico@devuan-3xS:~/Projects/itadinanta/ofx-rs$ rls --version
rls-preview 0.130.5 (1c755ef 2018-10-20)

@motecshine
Copy link

same version, I think you should delete projects/targets dir, and reopen vscode

@norru
Copy link

norru commented Nov 19, 2018

Did try that before, no luck.

I'll double check to be sure.

@norru
Copy link

norru commented Nov 19, 2018

In fact, a full update and full build after a a cargo clean seem to resolve the problem.

$ rustc --version
rustc 1.32.0-nightly (13c943992 2018-11-18)
$ cargo --version
cargo 1.32.0-nightly (b3d0b2e54 2018-11-15)
$ RUST_BACKTRACE=1 rls --version
rls-preview 0.130.5 (1c755ef 2018-10-20)
$ RUST_BACKTRACE=1 rls --cli
...
{"jsonrpc":"2.0","method":"window/progress","params":{"done":true,"id":"progress_1","title":"Building"}}
{"jsonrpc":"2.0","method":"window/progress","params":{"id":"progress_0","title":"Indexing"}}
{"jsonrpc":"2.0","method":"window/progress","params":{"done":true,"id":"progress_0","title":"Indexing"}}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants