[Frontend] Allow -emit-interface with -typecheck (#19676)

Textual module interfaces don't actually depend on SILGen, so we
shouldn't need to run SILGen (or serialize an entire binary module) if
we're just trying to emit a textual interface. On the other hand, if
we /are/ going to run SILGen and then SIL diagnostics, we shouldn't
delay those diagnostics by spending time emitting a textual interface,
or for that matter a TBD file.

Using this, update all the ModuleInterface tests that use
`-emit-module -o /dev/null` to use `-typecheck` instead, except for
those using `-merge-modules`.
This commit is contained in:
Jordan Rose
2018-10-03 15:07:31 -07:00
committed by GitHub
parent 6cc6f4f182
commit 3ea754481e
15 changed files with 84 additions and 36 deletions

View File

@@ -0,0 +1,12 @@
// RUN: rm -f %t
// RUN: not %target-swift-frontend -emit-interface-path %t -emit-module -o /dev/null %s
// RUN: test ! -f %t
// RUN: %target-swift-frontend -emit-interface-path %t -typecheck %s
// RUN: test -f %t
public struct BadInit {
public var x: Int
public init() {
return // without initializing 'x'
}
}