Skip to content
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

CARGO_MANIFEST_DIR must be set and could not resolve macro json_internal #6890

Closed
mkpankov opened this issue Dec 15, 2020 · 3 comments
Closed
Labels
A-macro macro expansion S-actionable Someone could pick this issue up and work on it right now

Comments

@mkpankov
Copy link

Was working fine two weeks ago.

Get the repo
https://github.com/whamcloud/integrated-manager-for-lustre/

Go to the
iml-api/src/graphql/mod.rs

Observe the list of problems, none of which happen when doing cargo check.

image

Settings required for procedural macro and build script support (rust-analyzer.cargo.loadOutDirsFromCheck, rust-analyzer.procMacro.enable) are enabled.

In the Rust Analyzer Language Server output panel there are panics

thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "failed to parse derive input: \"pubenumSpinnerNames{Dots, Dots2, Dots3, Dots4, Dots5, Dots6, Dots7, Dots8, Dots9, Dots10, Dots11, Dots12, Line, Line2, Pipe, SimpleDots, SimpleDotsScrolling, Star, Star2, Flip, Hamburger, GrowVertical, GrowHorizontal, Balloon, Balloon2, Noise, Bounce, BoxBounce, BoxBounce2, Triangle, Arc, Circle, SquareCorners, CircleQuarters, CircleHalves, Squish, Toggle, Toggle2, Toggle3, Toggle4, Toggle5, Toggle6, Toggle7, Toggle8, Toggle9, Toggle10, Toggle11, Toggle12, Toggle13, Arrow, Arrow2, Arrow3, BouncingBar, BouncingBall, Smiley, Monkey, Hearts, Clock, Earth, Moon, Runner, Pong, Shark, Dqpb, Weather, Christmas, Grenade, Point, Layer, BetaWave, }\""', /home/mkpankov/.cargo/registry/src/github.com-1ecc6299db9ec823/strum_macros-0.8.0/src/lib.rs:43:43
stack backtrace:
   0: rust_begin_unwind
             at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:483
   1: core::panicking::panic_fmt
             at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/panicking.rs:85
   2: core::option::expect_none_failed
             at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/option.rs:1234
   3: core::result::Result<T,E>::unwrap
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:973
   4: strum_macros::from_string
             at /home/mkpankov/.cargo/registry/src/github.com-1ecc6299db9ec823/strum_macros-0.8.0/src/lib.rs:43
   5: core::ops::function::FnOnce::call_once
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227
   6: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:410
   7: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:377
   8: proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:80
   9: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:75
  10: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:80
  11: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:325
  12: std::thread::local::LocalKey<T>::try_with
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:272
  13: std::thread::local::LocalKey<T>::with
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:248
  14: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:325
  15: proc_macro::bridge::client::run_client::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:370
  16: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:308
  17: std::panicking::try::do_call
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:381
  18: __rust_try
  19: std::panicking::try
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:345
  20: std::panic::catch_unwind
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:382
  21: proc_macro::bridge::client::run_client
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:369
  22: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:410
  23: proc_macro_srv::proc_macro::bridge::server::run_server
  24: proc_macro_srv::dylib::Expander::expand
  25: proc_macro_srv::cli::run
  26: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "failed to parse derive input: \"pubenumSpinnerNames{Dots, Dots2, Dots3, Dots4, Dots5, Dots6, Dots7, Dots8, Dots9, Dots10, Dots11, Dots12, Line, Line2, Pipe, SimpleDots, SimpleDotsScrolling, Star, Star2, Flip, Hamburger, GrowVertical, GrowHorizontal, Balloon, Balloon2, Noise, Bounce, BoxBounce, BoxBounce2, Triangle, Arc, Circle, SquareCorners, CircleQuarters, CircleHalves, Squish, Toggle, Toggle2, Toggle3, Toggle4, Toggle5, Toggle6, Toggle7, Toggle8, Toggle9, Toggle10, Toggle11, Toggle12, Toggle13, Arrow, Arrow2, Arrow3, BouncingBar, BouncingBall, Smiley, Monkey, Hearts, Clock, Earth, Moon, Runner, Pong, Shark, Dqpb, Weather, Christmas, Grenade, Point, Layer, BetaWave, }\""', /home/mkpankov/.cargo/registry/src/github.com-1ecc6299db9ec823/strum_macros-0.8.0/src/lib.rs:73:43
stack backtrace:
   0: rust_begin_unwind
             at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/std/src/panicking.rs:483
   1: core::panicking::panic_fmt
             at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/panicking.rs:85
   2: core::option::expect_none_failed
             at /rustc/7eac88abb2e57e752f3302f02be5f3ce3d7adfb4/library/core/src/option.rs:1234
   3: core::result::Result<T,E>::unwrap
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:973
   4: strum_macros::enum_iter
             at /home/mkpankov/.cargo/registry/src/github.com-1ecc6299db9ec823/strum_macros-0.8.0/src/lib.rs:73
   5: core::ops::function::FnOnce::call_once
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227
   6: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:410
   7: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:377
   8: proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:80
   9: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:75
  10: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/scoped_cell.rs:80
  11: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:325
  12: std::thread::local::LocalKey<T>::try_with
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:272
  13: std::thread::local::LocalKey<T>::with
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:248
  14: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:325
  15: proc_macro::bridge::client::run_client::{{closure}}
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:370
  16: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:308
  17: std::panicking::try::do_call
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:381
  18: __rust_try
  19: std::panicking::try
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:345
  20: std::panic::catch_unwind
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:382
  21: proc_macro::bridge::client::run_client
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:369
  22: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run
             at /home/mkpankov/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:410
  23: proc_macro_srv::proc_macro::bridge::server::run_server
  24: proc_macro_srv::dylib::Expander::expand
  25: proc_macro_srv::cli::run
  26: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
@bjorn3
Copy link
Member

bjorn3 commented Dec 15, 2020

I think this will be fixed by #6820.

@lnicola lnicola added A-macro macro expansion S-actionable Someone could pick this issue up and work on it right now labels Dec 18, 2020
bors bot added a commit that referenced this issue Jan 2, 2021
7133: Proper handling $crate and local_inner_macros r=jonas-schievink a=edwin0cheng

This PR introduces `HygineFrames` to store the macro definition/call site hierarchy in hyginee and when resolving `local_inner_macros` and `$crate`, we use the token to look up the corresponding frame and return the correct value.

See also: https://rustc-dev-guide.rust-lang.org/macro-expansion.html#hygiene-and-hierarchies

fixe #6890 and  #6788

r? @jonas-schievink 

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
@lnicola
Copy link
Member

lnicola commented Jan 2, 2021

Seems to be working now:

image

@lnicola lnicola closed this as completed Jan 2, 2021
@lnicola lnicola reopened this Jan 3, 2021
@edwin0cheng
Copy link
Member

Fixed in #7145 again :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-macro macro expansion S-actionable Someone could pick this issue up and work on it right now
Projects
None yet
Development

No branches or pull requests

4 participants