[ModuleInterface] Add printing for new attributes

Specially print @_hasMissingDesignatedInitializers and @_inheritsConvenienceInitializers in module interfaces

Fixes rdar://51249311
This commit is contained in:
Harlan Haskins
2019-11-19 16:53:43 -08:00
committed by Robert Widmann
parent 283854a012
commit 511db0c90a
8 changed files with 176 additions and 12 deletions

View File

@@ -0,0 +1,26 @@
// Compile the imported module to a .swiftinterface and ensure the convenience
// init cannot be called.
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -typecheck %S/non-public-designated-inits.swift -emit-module-interface-path %t/Module.swiftinterface -module-name Module -enable-library-evolution
// RUN: %target-swift-frontend -typecheck -verify %s -I %t
// Make sure the same error is emitted when importing a .swiftmodule
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -o %t/Module.swiftmodule %S/non-public-designated-inits.swift -module-name Module -enable-library-evolution
// RUN: %target-swift-frontend -typecheck -verify %s -I %t
import Module
open class B : A {
var x: Int
public override init(_ x: Int) {
self.x = x
super.init(x)
}
}
print(B(hi: ())) // expected-error {{cannot convert value of type '()' to expected argument type 'Int'}}
// expected-error @-1 {{extraneous argument label 'hi:' in call}}