Closed
Description
rust-analyzer version: 6634eaf 2022-01-29 nightly
rustc version: rustc 1.60.0-nightly (e0a55f449 2022-01-28)
Hello,
I am having a problem with rust-analyzer being unable to syntax-highlight my project. This project builds successfully on Rust nightly with cargo build
.
So far I have reduced the issue to:
#![feature(
generators,
proc_macro_hygiene,
stmt_expr_attributes,
)]
use cipher::NewCipher;
use aes::cipher::generic_array::GenericArray;
use futures::stream::BoxStream;
use futures_async_stream::stream;
type Aes128Ctr = ctr::Ctr64BE<aes::Aes128>;
pub fn stream_chunks() -> BoxStream<'static, ()> {
Box::pin(
#[stream]
async move {
let zeroes = GenericArray::from_slice(&[0; 16]);
let _cipher = Aes128Ctr::new(zeroes, zeroes);
}
)
}
(available in this repo with a Cargo.toml)
rust-analyzer shows these messages when clicking around in lib.rs
:
- Request textDocument/semanticTokens/range failed.
- Request textDocument/documentHighlight failed.
- server panicked: overflow depth reached, check the log
I used rust-analyzer v0.3.921 in vscode 1.63.2 and tested with rustc nightly-2022-01-27 on NixOS and rustc nightly-2022-01-28 on Windows 10, both of which do the same thing.
There are other variations that will have the same problem, including ()
-> String
, #[stream]
-> #[try_stream]
, and async
-> async move
.
The output in vscode shows:
thread '<unnamed>' panicked at 'overflow depth reached', /home/at/.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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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::SolveIterationHelpers::solve_from_clauses
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.