Files
swift-mirror/test/SourceKit/Misc/parser-cutoff.swift
Alex Hoppen 3a96cc7c51 [SourceKit] Use a deep stack to perform syntactic parsing
Othwerise we were performing the syntactic parsing on a background queue that had a reduced stack size which could result in stack overflows.

rdar://84474387
2021-11-09 18:36:09 +01:00

792 lines
8.6 KiB
Swift

func foo(a: Int) {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
if a > 1 {
// This used to stack overflow because syntactic parsing was performed on a background queue with reduced stack size.
// RUN: %sourcekitd-test -req=syntax-map %s -- %s