Skip to content

async_trait analyzing error: Request codeLens/resolve failed: overflow depth reached #11668

Closed
@PureWhiteWu

Description

@PureWhiteWu

rust-analyzer version: 5fae65d 2022-03-07 stable

os: macOS 12 aarch64

rustc version: rustc 1.59.0 (9d1b2106e 2022-02-23)

Code:
image

Error Screenshot:
image

Error log:

Panic context:
> 
version: 5fae65dd2 2022-03-07 stable
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 187,
            character: 13,
        },
        end: Position {
            line: 187,
            character: 19,
        },
    },
    command: None,
    data: Some(
        Object({
            "references": Object({
                "textDocument": Object({
                    "uri": String(
                        "*********",
                    ),
                }),
                "position": Object({
                    "line": Number(
                        187,
                    ),
                    "character": Number(
                        13,
                    ),
                }),
            }),
        }),
    ),
}

thread '<unnamed>' panicked at 'overflow depth reached', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-recursive-0.76.0/src/fixed_point/stack.rs:51:13
stack backtrace:
   0: std::panicking::begin_panic
   1: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
   2: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
   3: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
   4: chalk_recursive::solve::SolveIteration::solve_iteration
   5: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
   6: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
   7: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
   8: chalk_recursive::solve::SolveIteration::solve_iteration
   9: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  10: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  11: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  12: chalk_recursive::solve::SolveIteration::solve_iteration
  13: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  14: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  15: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  16: chalk_recursive::solve::SolveIteration::solve_iteration
  17: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  18: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  19: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  20: chalk_recursive::solve::SolveIteration::solve_iteration
  21: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  22: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  23: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  24: chalk_recursive::solve::SolveIteration::solve_iteration
  25: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  26: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  27: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  28: chalk_recursive::solve::SolveIteration::solve_iteration
  29: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  30: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  31: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  32: chalk_recursive::solve::SolveIteration::solve_iteration
  33: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  34: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  35: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  36: chalk_recursive::solve::SolveIteration::solve_iteration
  37: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  38: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  39: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  40: chalk_recursive::solve::SolveIteration::solve_iteration
  41: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  42: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  43: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  44: chalk_recursive::solve::SolveIteration::solve_iteration
  45: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  46: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  47: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  48: chalk_recursive::solve::SolveIteration::solve_iteration
  49: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  50: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  51: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  52: chalk_recursive::solve::SolveIteration::solve_iteration
  53: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  54: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  55: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  56: chalk_recursive::solve::SolveIteration::solve_iteration
  57: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  58: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  59: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  60: chalk_recursive::solve::SolveIteration::solve_iteration
  61: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  62: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  63: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  64: chalk_recursive::solve::SolveIteration::solve_iteration
  65: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  66: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  67: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  68: chalk_recursive::solve::SolveIteration::solve_iteration
  69: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  70: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  71: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  72: chalk_recursive::solve::SolveIteration::solve_iteration
  73: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  74: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  75: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  76: chalk_recursive::solve::SolveIteration::solve_iteration
  77: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  78: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  79: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  80: chalk_recursive::solve::SolveIteration::solve_iteration
  81: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  82: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  83: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  84: chalk_recursive::solve::SolveIteration::solve_iteration
  85: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  86: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  87: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
  88: chalk_recursive::solve::SolveIteration::solve_iteration
  89: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
  90: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
  91: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

And for a POC, I wrote a simple code like this:
image

Mention the huge amount of references here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-macromacro expansionA-tytype system / type inference / traits / method resolutionBroken WindowBugs / technical debt to be addressed immediatelyC-bugCategory: bugS-actionableSomeone could pick this issue up and work on it right now

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions