Skip to content

Commit

Permalink
Tests: Add a clang submodule test to extensions_transitive_objc.swift.
Browse files Browse the repository at this point in the history
  • Loading branch information
tshortli committed Apr 11, 2024
1 parent 6ebd4af commit ead4699
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 4 deletions.
1 change: 1 addition & 0 deletions test/NameLookup/Inputs/Categories/Categories_D.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// Intentionally empty
1 change: 0 additions & 1 deletion test/NameLookup/Inputs/Categories/Categories_D.swift

This file was deleted.

2 changes: 2 additions & 0 deletions test/NameLookup/Inputs/Categories/Categories_E.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import Categories_C
import Categories_D.Submodule
5 changes: 5 additions & 0 deletions test/NameLookup/Inputs/Categories/Submodule.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@import Categories_A;

@interface X (SubmoduleOfD)
- (void)fromSubmoduleOfD;
@end
11 changes: 11 additions & 0 deletions test/NameLookup/Inputs/Categories/module.modulemap
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,14 @@ module Categories_C {
header "Categories_C.h"
export *
}

module Categories_D {
header "Categories_D.h"
export *

explicit module Submodule {
header "Submodule.h"
export *
}
}

10 changes: 7 additions & 3 deletions test/NameLookup/extensions_transitive_objc.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,25 @@
// RUN: %target-swift-frontend -emit-module -I %t -I %S/Inputs/Categories -o %t %S/Inputs/Categories/Categories_A.swift
// RUN: %target-swift-frontend -emit-module -I %t -I %S/Inputs/Categories -o %t %S/Inputs/Categories/Categories_B.swift
// RUN: %target-swift-frontend -emit-module -I %t -I %S/Inputs/Categories -o %t %S/Inputs/Categories/Categories_C.swift
// RUN: %target-swift-frontend -emit-module -I %t -I %S/Inputs/Categories -o %t %S/Inputs/Categories/Categories_D.swift
// RUN: %target-swift-frontend -emit-module -I %t -I %S/Inputs/Categories -o %t %S/Inputs/Categories/Categories_E.swift
// RUN: %target-swift-frontend -typecheck %s -I %t -I %S/Inputs/Categories -verify -enable-experimental-feature ExtensionImportVisibility

// REQUIRES: objc_interop

import Categories_B
import Categories_D
// expected-note 2 {{add import of module 'Categories_C'}}{{1-1=import Categories_C\n}}
import Categories_E

// expected-note@-1 2 {{add import of module 'Categories_C'}}{{1-1=import Categories_C\n}}
// expected-note@-2 {{add import of module 'Categories_D'}}{{1-1=import Categories_D\n}}
func test(x: X) {
x.fromA()
x.fromOverlayForA()
x.fromB()
x.fromOverlayForB()
x.fromC() // expected-error {{class method 'fromC()' is not available due to missing import of defining module 'Categories_C'}}
x.fromOverlayForC() // expected-error {{instance method 'fromOverlayForC()' is not available due to missing import of defining module 'Categories_C'}}
x.fromSubmoduleOfD() // expected-error {{class method 'fromSubmoduleOfD()' is not available due to missing import of defining module 'Categories_D'}}

}

func testAnyObject(a: AnyObject) {
Expand Down

0 comments on commit ead4699

Please sign in to comment.