Skip to content
Aborted

Changes

Summary

  1. AST: Filter out some Obj-C overrides when MemberImportVisibility is enabled. (details)
Commit eafb84713ed300ef9a238ddc89358ab97a1a1be7 by shortlidge
AST: Filter out some Obj-C overrides when MemberImportVisibility is enabled.

Unlike in Swift, Obj-C allows method overrides to be declared in extensions
(categories), even outside of the module that defines the type that is being
extended. When MemberImportVisibility is enabled, these overrides must be
filtered out to prevent them from hijacking name lookup and causing the
compiler to insist that the module that defines the extension be imported.

Resolves rdar://145329988.
The file was modified test/NameLookup/Inputs/MemberImportVisibility/Categories_C.h (diff)
The file was modified test/NameLookup/members_transitive_objc.swift (diff)
The file was addedtest/NameLookup/Inputs/MemberImportVisibility/ObjCOverloads/Leaf.h
The file was modified lib/AST/NameLookup.cpp (diff)
The file was addedtest/NameLookup/Inputs/MemberImportVisibility/ObjCOverloads/Fruit.h
The file was modified test/NameLookup/Inputs/MemberImportVisibility/Categories_B.swift (diff)
The file was addedtest/NameLookup/Inputs/MemberImportVisibility/ObjCOverloads/module.modulemap
The file was modified test/NameLookup/Inputs/MemberImportVisibility/Categories_A.h (diff)
The file was addedtest/NameLookup/Inputs/MemberImportVisibility/ObjCOverloads/Branch.h
The file was addedtest/NameLookup/Inputs/MemberImportVisibility/ObjCOverloads/Root.h
The file was modified test/NameLookup/Inputs/MemberImportVisibility/members_A.swift (diff)
The file was modified test/NameLookup/Inputs/MemberImportVisibility/members_C.swift (diff)
The file was modified test/NameLookup/Inputs/MemberImportVisibility/Categories_E.swift (diff)
The file was modified test/NameLookup/Inputs/MemberImportVisibility/members_B.swift (diff)
The file was modified test/NameLookup/members_transitive.swift (diff)
The file was modified test/NameLookup/Inputs/MemberImportVisibility/Categories_C.swift (diff)
The file was addedtest/NameLookup/members_transitive_objc_overrides.swift
The file was modified test/NameLookup/Inputs/MemberImportVisibility/Categories_A.swift (diff)