mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
We ran SwiftParser in `handlePrimaryAST` for related identifiers. That function is called on a dispatch queue with reduced stack size and could cause the parser to stack overflow if the program is very nested. Run `handlePrimaryAST` on a deep stack for this request to fix the issue. rdar://129960285
304 lines
3.1 KiB
Swift
304 lines
3.1 KiB
Swift
// This test used to overflow the stack because SwiftParser was run on a background thread with reduced stack size
|
|
// RUN: %sourcekitd-test -req=related-idents -pos=%(line + 1):5 %s -- %s
|
|
let x = 1
|
|
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|
|
if true {
|