Skip to content

Commit

Permalink
Remove auto traits from ICE work-around
Browse files Browse the repository at this point in the history
  • Loading branch information
brooksprumo committed Jun 21, 2022
1 parent bf9ca98 commit 70b4461
Showing 1 changed file with 0 additions and 18 deletions.
18 changes: 0 additions & 18 deletions runtime/src/builtins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,24 +91,6 @@ impl AutoTraitBreakSendSync for InnerBuiltinFeatureTransition {}
#[derive(AbiExample, Clone, Debug)]
pub struct BuiltinFeatureTransition(InnerBuiltinFeatureTransition);

// https://github.com/solana-labs/solana/pull/23233 added `BuiltinFeatureTransition`
// to `Bank` which triggers https://github.com/rust-lang/rust/issues/92987 while
// attempting to resolve `Sync` on `BankRc` in `AccountsBackgroundService::new` ala,
//
// query stack during panic:
// #0 [evaluate_obligation] evaluating trait selection obligation `bank::BankRc: core::marker::Sync`
// #1 [typeck] type-checking `accounts_background_service::<impl at runtime/src/accounts_background_service.rs:358:1: 520:2>::new`
// #2 [typeck_item_bodies] type-checking all item bodies
// #3 [analysis] running analysis passes on this crate
// end of query stack
//
// Yoloing a `Sync` onto it avoids the auto trait evaluation and thus the ICE.
//
// We should remove this when upgrading to Rust 1.60.0, where the bug has been
// fixed by https://github.com/rust-lang/rust/pull/93064
unsafe impl Send for BuiltinFeatureTransition {}
unsafe impl Sync for BuiltinFeatureTransition {}

impl BuiltinFeatureTransition {
pub fn to_action(
&self,
Expand Down

0 comments on commit 70b4461

Please sign in to comment.