Closed
Description
This is the full project that causes that failure, make sure to use that commit.
The culprit line is here.
Inside a match:
e if display.randr.as_ref().map_or(false, |rr| e == rr.event(xrandr::RRScreenChangeNotify))
Results in:
!dbg attachment points at wrong subprogram for function
!21995 = distinct !DISubprogram(name: "{{closure}}", linkageName: "_ZN12screenruster6locker8{{impl}}5spawn11{{closure}}11{{closure}}E", scope: !21991, file: !352, line: 214, type: !21992, isLocal: true, isDefinition: true, scopeLine: 214, flags: DIFlagPrototyped, isOptimized: false, templateParams: !457, variables: !457)
i1 (i8*, %"locker::display::Extension"*)* @"_ZN12screenruster6locker6Locker5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hb41874d5593ec665E"
call void @llvm.dbg.declare(metadata %closure.114** %__debuginfo_env_ptr, metadata !59153, metadata !59154), !dbg !59155
!59155 = !DILocation(line: 214, scope: !21990)
!21990 = distinct !DISubprogram(name: "{{closure}}", linkageName: "_ZN12screenruster6locker8{{impl}}5spawn11{{closure}}11{{closure}}E", scope: !21991, file: !352, line: 214, type: !21992, isLocal: true, isDefinition: true, scopeLine: 214, flags: DIFlagPrototyped, isOptimized: false, templateParams: !457, variables: !457)
!21990 = distinct !DISubprogram(name: "{{closure}}", linkageName: "_ZN12screenruster6locker8{{impl}}5spawn11{{closure}}11{{closure}}E", scope: !21991, file: !352, line: 214, type: !21992, isLocal: true, isDefinition: true, scopeLine: 214, flags: DIFlagPrototyped, isOptimized: false, templateParams: !457, variables: !457)
LLVM ERROR: Broken function found, compilation aborted!
If I change that to:
e if e == display.randr.as_ref().map_or(0, |rr| rr.event(xrandr::RRScreenChangeNotify))
Then it compiles.
I tried to come up with a reduced test case but failed, so sorry for the full project as test case.