Skip to content

FP Syntax Error: A block in this position cannot accept inner attributes #23187

Description

@matthiaskrgr

The following code

fn bla() -> ((),) {
    (
        {
            #![allow(unreachable_code, irrefutable_let_patterns)]
        },
    )
}

fn main() {}

comiled with rustc (cargo check):

    Checking _main v0.1.0 (/tmp/icemaker_global_tempdir.SjUS4CVu3Z7a/rustc_testrunner_tmpdir.OawYhBfM7wxi/_main)
warning: function `bla` is never used
 --> src/main.rs:1:4
  |
1 | fn bla() -> ((),) {
  |    ^^^
  |
  = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: `_main` (bin "_main") generated 1 warning
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s

but errors were issued by rust-analyzer diagnostics

at crate _main, file /tmp/icemaker_global_tempdir.SjUS4CVu3Z7a/rustc_testrunner_tmpdir.OawYhBfM7wxi/_main/src/main.rs: Error SyntaxError from LineCol { line: 3, col: 12 } to LineCol { line: 3, col: 65 }: Syntax Error: A block in this position cannot accept inner attributes

diagnostic scan complete


Error: diagnostic error detected

Stack backtrace:
   0: <anyhow::Error>::msg::<&str>
             at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/backtrace.rs:10:14
   1: anyhow::__private::format_err
             at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/lib.rs:687:13
   2: <rust_analyzer::cli::flags::Diagnostics>::run_
             at /home/matthias/vcs/github/rust-analyzer/crates/rust-analyzer/src/cli/diagnostics.rs:123:13
   3: <rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}
             at /home/matthias/vcs/github/rust-analyzer/crates/rust-analyzer/src/cli/diagnostics.rs:20:29
   4: <stdx::thread::Builder>::spawn::<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}
             at /home/matthias/vcs/github/rust-analyzer/crates/stdx/src/thread.rs:74:13
   5: std::sys::backtrace::__rust_begin_short_backtrace::<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:166:18
   6: std::thread::lifecycle::spawn_unchecked::<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1}::{closure#0}
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/lifecycle.rs:70:13
   7: <core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1}::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:275:9
   8: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1}::{closure#0}>, core::result::Result<(), anyhow::Error>>
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:576:43
   9: std::panicking::catch_unwind::<core::result::Result<(), anyhow::Error>, core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1}::{closure#0}>>
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
  10: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1}::{closure#0}>, core::result::Result<(), anyhow::Error>>
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  11: std::thread::lifecycle::spawn_unchecked::<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1}
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/lifecycle.rs:68:26
  12: <std::thread::lifecycle::spawn_unchecked<<stdx::thread::Builder>::spawn<<rust_analyzer::cli::flags::Diagnostics>::run::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#0}, core::result::Result<(), anyhow::Error>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
             at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  13: <alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/8fa1c96cfd489e4c27654c144ae871ce2c4db6c6/library/alloc/src/boxed.rs:2320:9
  14: <std::sys::thread::unix::Thread>::new::thread_start
             at /rustc/8fa1c96cfd489e4c27654c144ae871ce2c4db6c6/library/std/src/sys/thread/unix.rs:123:17
  15: <unknown>
  16: <unknown>

version information

rust-analyzer 0.0.0 (0356f5bf5a 2026-08-18)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions