mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Record up to two errors emitted when we fail to load a module for interface generation, and include these errors in the message we pass back to the editor. This should help us better pin down the reason why interface generation failed. rdar://109511099
44 lines
1.6 KiB
Swift
44 lines
1.6 KiB
Swift
// RUN: %empty-directory(%t/Inputs)
|
|
// RUN: %empty-directory(%t/Inputs/objcfail)
|
|
// RUN: split-file %s %t/Inputs
|
|
|
|
//--- objcfail/objcfail.h
|
|
|
|
#ifdef FAIL
|
|
#error some error from Clang module
|
|
|
|
// We only record the first error emitted, so we ignore this one.
|
|
#error another error from Clang module
|
|
#endif
|
|
|
|
void foo(void);
|
|
|
|
//--- objcfail/module.modulemap
|
|
|
|
module ObjCFail {
|
|
header "objcfail.h"
|
|
export *
|
|
}
|
|
|
|
//--- Library.swift
|
|
|
|
import ObjCFail
|
|
|
|
// First try printing the interface of the Clang module directly.
|
|
|
|
// RUN: %sourcekitd-test -req=interface-gen -module ObjCFail -- -I %t/Inputs/objcfail -target %target-triple %s | %FileCheck --check-prefix DIRECT-SUCCESS %s
|
|
// DIRECT-SUCCESS: public func foo()
|
|
|
|
// RUN: not %sourcekitd-test -req=interface-gen -module ObjCFail -- -Xcc -DFAIL -I %t/Inputs/objcfail -target %target-triple %s 2>&1 | %FileCheck --check-prefix DIRECT-FAIL %s
|
|
// DIRECT-FAIL: Could not load module: ObjCFail (could not build {{Objective-C|C}} module 'ObjCFail', some error from Clang module)
|
|
|
|
// Now try doing it transitively
|
|
|
|
// RUN: %target-swift-frontend -emit-module %t/Inputs/Library.swift -I %t/Inputs/objcfail -module-name Library -o %t
|
|
|
|
// RUN: %sourcekitd-test -req=interface-gen -module Library -- -I %t -target %target-triple %s | %FileCheck --check-prefix TRANSITIVE-SUCCESS %s
|
|
// TRANSITIVE-SUCCESS: import ObjCFail
|
|
|
|
// RUN: not %sourcekitd-test -req=interface-gen -module Library -- -Xcc -DFAIL -I %t -target %target-triple %s 2>&1 | %FileCheck --check-prefix TRANSITIVE-FAIL %s
|
|
// TRANSITIVE-FAIL: Could not load module: Library (could not build {{Objective-C|C}} module 'ObjCFail', some error from Clang module)
|