Skip to content

librustc_interface => 2018 #58837

New issue

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

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

Already on GitHub? # to your account

Merged
merged 2 commits into from
Mar 28, 2019
Merged

Conversation

Centril
Copy link
Contributor

@Centril Centril commented Mar 1, 2019

r? @oli-obk

This will likely produce an ICE for some reason... so super-WIP.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 1, 2019
@rust-highfive

This comment has been minimized.

@Centril Centril force-pushed the librustc_interface_2018 branch from 3f669e5 to 8bded6a Compare March 1, 2019 11:56
@rust-highfive

This comment has been minimized.

@taiki-e
Copy link
Member

taiki-e commented Mar 1, 2019

stage0... It may be the same as the ICE occurring in mingw-check of #58253 (comment).

@Centril
Copy link
Contributor Author

Centril commented Mar 1, 2019

Backtrace (RUST_BACKTRACE=1 ./x.py check):

    Checking rustc_interface v0.0.0 (/home/centril/programming/rust/src/librustc_interface)
thread 'rustc' panicked at 'src/librustc/hir/def.rs:257: attempted .def_id() on invalid def: NonMacroAttr(Builtin)', src/librustc/util/bug.rs:37:26
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:70
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:58
             at src/libstd/panicking.rs:200
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:215
   4: rustc::util::common::panic_hook
   5: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:482
   6: std::panicking::begin_panic
   7: rustc::util::bug::opt_span_bug_fmt::{{closure}}
   8: rustc::ty::context::tls::with_opt::{{closure}}
   9: rustc::ty::context::tls::with_context_opt
  10: rustc::ty::context::tls::with_opt
  11: rustc::util::bug::opt_span_bug_fmt
  12: rustc::util::bug::bug_fmt
  13: rustc::hir::def::Def::def_id::{{closure}}
  14: rustc::hir::def::Def::def_id
  15: rustc_resolve::build_reduced_graph::<impl rustc_resolve::Resolver<'a>>::populate_module_if_necessary
  16: rustc_resolve::resolve_imports::<impl rustc_resolve::Resolver<'a>>::resolve_ident_in_module_unadjusted_ext
  17: rustc_resolve::Resolver::resolve_ident_in_module_ext
  18: rustc_resolve::resolve_imports::ImportResolver::resolve_import::{{closure}}
  19: rustc_resolve::resolve_imports::ImportResolver::resolve_imports
  20: rustc_resolve::macros::<impl syntax::ext::base::Resolver for rustc_resolve::Resolver<'a>>::resolve_imports
  21: syntax::ext::expand::MacroExpander::expand_fragment
  22: syntax::ext::expand::MacroExpander::expand_crate
  23: rustc_driver::driver::phase_2_configure_and_expand_inner::{{closure}}
  24: rustc::util::common::time
  25: rustc_driver::driver::phase_2_configure_and_expand
  26: rustc_driver::driver::compile_input
  27: rustc_driver::run_compiler_with_pool
  28: <scoped_tls::ScopedKey<T>>::set
  29: rustc_driver::run_compiler
  30: <scoped_tls::ScopedKey<T>>::set
query stack during panic:
end of query stack

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.33.0-beta.7 (08f107300 2019-02-16) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z external-macro-backtrace -Z force-unstable-if-unmarked -C prefer-dynamic -C opt-level=2 -C prefer-dynamic -C debug-assertions=n -C link-args=-Wl,-rpath,$ORIGIN/../lib --crate-type dylib

note: some of the compiler flags provided by cargo are hidden

@oli-obk
Copy link
Contributor

oli-obk commented Mar 1, 2019

Ugh... that resolution error again?! We should fix it quickly and get it back into the bootstrap compiler. Until then, I presume your code has an error, we just don't see it emitted.

@Centril
Copy link
Contributor Author

Centril commented Mar 1, 2019

@oli-obk It's not the same origin as the one we fixed before and got into the bootstrap compiler, going by the backtrace, the origin seems different. I think the fix is the changes I made to librustc_resolve in this PR but I'm not sure... have a look?

@petrochenkov
Copy link
Contributor

@Centril
Could you make a minimized reproduction if possible?
I can't imagine how Module can not have a def-id.

@oli-obk
Copy link
Contributor

oli-obk commented Mar 1, 2019

Yes, I think your solution is correct. I mean, if you want to be really on the safe side you change the last fix and this fix to emit tcx.sess.delay_span_bug in the None case, because I think it can only happen when we are currently trying to emit an error.

@Centril
Copy link
Contributor Author

Centril commented Mar 3, 2019

@petrochenkov Minimized reproduction: https://github.com/Centril/rust/tree/65cbefda9c13b31c2daea5921d997765d0db304b (with beta-2019-02-17-x86_64-unknown-linux-gnu)

@petrochenkov
Copy link
Contributor

@Centril
Thanks!

@petrochenkov
Copy link
Contributor

Fixed in #59047

The backtrace was misleading due to missing frames, there's no NonMacroAttr(Builtin) in module, the ICE comes from fn build_reduced_graph_for_external_crate_def (and it was actually partially fixed in #58253, but that PR didn't land yet due to some other ICE).

@bors
Copy link
Collaborator

bors commented Mar 10, 2019

☔ The latest upstream changes (presumably #56732) made this pull request unmergeable. Please resolve the merge conflicts.

@Centril Centril added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 10, 2019
@Centril
Copy link
Contributor Author

Centril commented Mar 10, 2019

Triage: Blocked on #59047 ending up in the bootstrap compiler.

Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
Centril added a commit to Centril/rust that referenced this pull request Mar 11, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
pietroalbini added a commit to pietroalbini/rust that referenced this pull request Mar 13, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
Centril added a commit to Centril/rust that referenced this pull request Mar 13, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
Centril added a commit to Centril/rust that referenced this pull request Mar 16, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
Centril added a commit to Centril/rust that referenced this pull request Mar 16, 2019
resolve: Account for new importable entities

Fixes the ICE encountered in rust-lang#58837
r? @Centril
@Centril Centril force-pushed the librustc_interface_2018 branch 3 times, most recently from 80439f2 to b057210 Compare March 26, 2019 18:09
@Centril Centril added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 26, 2019
@Centril
Copy link
Contributor Author

Centril commented Mar 26, 2019

r? @petrochenkov

Should be good to go now, but let's wait on travis first... :)

@Centril Centril changed the title [WIP] librustc_interface => 2018 librustc_interface => 2018 Mar 26, 2019
@petrochenkov
Copy link
Contributor

@bors r+

@bors
Copy link
Collaborator

bors commented Mar 26, 2019

📌 Commit b0572103841c9a7f30e408d9aa0386279e3de379 has been approved by petrochenkov

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 26, 2019
@rust-highfive

This comment has been minimized.

@Centril Centril force-pushed the librustc_interface_2018 branch from b057210 to bf1068b Compare March 27, 2019 08:49
@Centril
Copy link
Contributor Author

Centril commented Mar 27, 2019

@bors r=petrochenkov

@bors
Copy link
Collaborator

bors commented Mar 27, 2019

📌 Commit bf1068b has been approved by petrochenkov

Centril added a commit to Centril/rust that referenced this pull request Mar 27, 2019
…petrochenkov

librustc_interface => 2018

r? @oli-obk

This will likely produce an ICE for some reason... so super-WIP.
Centril added a commit to Centril/rust that referenced this pull request Mar 27, 2019
…petrochenkov

librustc_interface => 2018

r? @oli-obk

This will likely produce an ICE for some reason... so super-WIP.
cuviper added a commit to cuviper/rust that referenced this pull request Mar 28, 2019
…petrochenkov

librustc_interface => 2018

r? @oli-obk

This will likely produce an ICE for some reason... so super-WIP.
bors added a commit that referenced this pull request Mar 28, 2019
Rollup of 18 pull requests

Successful merges:

 - #57293 (Make some lints incremental)
 - #57565 (syntax: Remove warning for unnecessary path disambiguators)
 - #58253 (librustc_driver => 2018)
 - #58837 (librustc_interface => 2018)
 - #59268 (Add suggestion to use `&*var` when `&str: From<String>` is expected)
 - #59283 (Make ASCII case conversions more than 4× faster)
 - #59284 (adjust MaybeUninit API to discussions)
 - #59372 (add rustfix-able suggestions to trim_{left,right} deprecations)
 - #59390 (Make `ptr::eq` documentation mention fat-pointer behavior)
 - #59393 (Refactor tuple comparison tests)
 - #59420 ([CI] record docker image info for reuse)
 - #59421 (Reject integer suffix when tuple indexing)
 - #59430 (Renames `EvalContext` to `InterpretCx`)
 - #59439 (Generalize diagnostic for `x = y` where `bool` is the expected type)
 - #59449 (fix: Make incremental artifact deletion more robust)
 - #59451 (Add `Default` to `std::alloc::System`)
 - #59459 (Add some tests)
 - #59460 (Include id in Thread's Debug implementation)

Failed merges:

r? @ghost
@bors bors merged commit bf1068b into rust-lang:master Mar 28, 2019
@Centril Centril deleted the librustc_interface_2018 branch March 28, 2019 07:18
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants