Skip to content

Another macro ICE #68060

Closed
Closed
@olegnn

Description

@olegnn

This code

fn calc(width: usize) -> Vec<usize> {
    (0..width)
        .map(
            #[target_feature(enable = "avx2")]
            |y| y,
        )
        .collect()
}

fn main() {
    println!("ICE {:?}", calc(8));
}

(Playground)

Produces ICE on any channel

   Compiling playground v0.0.1 (/playground)
error: internal compiler error: src/librustc_typeck/collect.rs:1898: to get the signature of a closure, use `closure_sig()` not `fn_sig()`

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:931:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

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.40.0 (73528e339 2019-12-16) running on x86_64-unknown-linux-gnu

note: compiler flags: -C codegen-units=1 -C debuginfo=2 --crate-type bin

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

error: aborting due to previous error

error: could not compile `playground`.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-closuresArea: Closures (`|…| { … }`)A-codegenArea: Code generationA-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-type-systemArea: Type systemC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions