Files
swift-mirror/test/Interop/Cxx/class/fixit-add-safe-to-import-self-contained.swift
Doug Gregor 8cd2f34654 Generalize tests for both diagnostic styles, or force the LLVM style
These tests are using FileCheck to check the result of diagnostic
formatting in ways that don't match the new formatter. Force the old
formatter or, where possible, generalize so that they match both
formatters.
2024-02-19 02:48:37 -10:00

44 lines
1.1 KiB
Swift

// RUN: rm -rf %t
// RUN: split-file %s %t
// RUN: not %target-swift-frontend -typecheck -I %t/Inputs %t/test.swift -enable-experimental-cxx-interop -diagnostic-style llvm 2>&1 | %FileCheck %s
//--- Inputs/module.modulemap
module Test {
header "test.h"
requires cplusplus
}
//--- Inputs/test.h
struct Ptr { int *p; };
struct X {
X(const X&);
int *test() { }
Ptr other() { }
};
//--- test.swift
import Test
public func test(x: X) {
// CHECK: note: annotate method 'test' with 'SWIFT_RETURNS_INDEPENDENT_VALUE' in C++ to make it available in Swift
// CHECK: int *test() { }
// CHECK: ^
// CHECK: SWIFT_RETURNS_INDEPENDENT_VALUE
x.test()
// CHECK: note: annotate method 'other' with 'SWIFT_RETURNS_INDEPENDENT_VALUE' in C++ to make it available in Swift
// CHECK: Ptr other() { }
// CHECK: ^
// CHECK: SWIFT_RETURNS_INDEPENDENT_VALUE
// CHECK: note: annotate type 'Ptr' with 'SWIFT_SELF_CONTAINED' in C++ to make methods that return it available in Swift
// CHECK: struct Ptr {
// CHECK: ^
// CHECK: SWIFT_SELF_CONTAINED
x.other()
}