Handle parsing deinitializers without bodies for .swiftinterfaces

The presence of a deinitializer will eventually indicate whether a
class's deinitializer is non-trivial for non-resilient modules.

Also improve recovery for normal source files for various bad ways
of declaring a deinitializer.
This commit is contained in:
Jordan Rose
2018-08-16 13:37:53 -07:00
parent 318e988ae1
commit ec0719d3e0
4 changed files with 48 additions and 25 deletions

View File

@@ -4,7 +4,15 @@
// ...and then make sure parse-and-typecheck-and-serialize works.
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -o %t/SmokeTest.swiftmodule %s
// RUN: %target-swift-ide-test -print-module -module-to-print SmokeTest -I %t -source-filename x -print-access | %FileCheck %s
// RUN: %target-swift-ide-test -print-module -module-to-print SmokeTest -I %t -source-filename x -print-interface > %t/SmokeTest.txt
// RUN: %FileCheck %s < %t/SmokeTest.txt
// RUN: %FileCheck -check-prefix NEGATIVE %s < %t/SmokeTest.txt
// CHECK-LABEL: public class Test
public class Test {
// NEGATIVE-NOT: deinit
deinit
} // CHECK: {{^}$}}
// CHECK: public var readOnlyVar: Int { get }{{$}}
public var readOnlyVar: Int { get }