Files
swift-mirror/test/ClangImporter/nested_protocol_name.swift
Rintaro Ishizaki c9785d955d [SourceKit] Stop printing normal comments in clang generated interface
Generated interfaces for Clang modules used to try printing normal
comments between decls extracted from the header text. That was because
doc-comment was not common in C/ObjC headers. But mainly because of
"import as member feature" Clang decls aren't printed in the order as
they appear in the header file, the logic determinig which comment
belongs to which decl was not working property. We've decided to remove
that feature and only print the proper doc-comments as it has been
getting common.

rdar://93731287
2024-03-21 11:52:32 +09:00

44 lines
1.5 KiB
Swift

// REQUIRES: objc_interop
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -import-objc-header %S/Inputs/nested_protocol_name.h -typecheck -verify %s
// RUN: echo '#include "nested_protocol_name.h"' > %t.m
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/nested_protocol_name.h -import-objc-header %S/Inputs/nested_protocol_name.h --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t.txt
// RUN: %FileCheck -check-prefix=HEADER %s < %t.txt
// rdar://59431058
// Let's make sure this works, but let's not encourage its spread...
// HEADER: class Trunk {
// HEADER: init!()
// HEADER: class func addLimb(_ limb: (any Trunk.Branch)!)
// HEADER: func addLimb(_ limb: (any Trunk.Branch)!)
// HEADER: func addLimbs(_ limbs: [any Trunk.Branch]!)
// HEADER: }
// HEADER: protocol Branch {
// HEADER: func flower()
// HEADER: }
func grow(_ branch: Trunk.Branch, from trunk: Trunk) {
branch.flower()
trunk.addLimb(branch)
}
// rdar://95084142 - crash while matching existential types
func grow_multiple(_ branches: [Trunk.Branch], from trunk: Trunk) {
trunk.addLimbs(branches) // ok
}
class SturdyBranch: Trunk.Branch {
func flower() {}
}
// FIXME: Odd that name lookup can't find this...
class NormalBranch: Branch { // expected-error {{cannot find type 'Branch' in scope}}
func flower() {}
}
class WeakBranch: TrunkBranchProtocol { // expected-error {{'TrunkBranchProtocol' has been renamed to 'Trunk.Branch'}}
func flower() {}
}