Skip to content

Conversation

@egorzhdan
Copy link
Contributor

@egorzhdan egorzhdan commented Nov 18, 2022

Clang recently started wrapping more types in clang::ElaboratedType after this change: https://reviews.llvm.org/D112374

This broke some assumptions in ClangImporter, specifically in enum handling logic. This change adjusts those.

Fixes these tests in rebranch:

  • Interop/Cxx/enum/anonymous-with-swift-name-module-interface.swift
  • Interop/Cxx/enum/anonymous-with-swift-name-objc-module-interface.swift
  • Interop/Cxx/enum/anonymous-with-swift-name.swift
  • Interop/Cxx/enum/c-enums-NS_OPTIONS-NS_REFINED_FOR_SWIFT.swift
  • Interop/Cxx/enum/c-enums-NS_OPTIONS.swift
  • Interop/Cxx/enum/c-enums-withOptions-omit.swift
  • Interop/Cxx/class/inheritance/fields-module-interface.swift
  • Interop/Cxx/class/inheritance/fields.swift
  • Interop/Cxx/class/inheritance/functions-module-interface.swift
  • Interop/Cxx/class/inheritance/sub-types-module-interface.swift
  • Interop/Cxx/class/inheritance/type-aliases-module-interface.swift

@egorzhdan egorzhdan added the c++ interop Feature: Interoperability with C++ label Nov 18, 2022
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

@egorzhdan
Copy link
Contributor Author

@swift-ci please test

@egorzhdan egorzhdan force-pushed the egorzhdan/clang-elaborated branch from 9ddde90 to 9a6435a Compare November 19, 2022 01:55
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

@egorzhdan
Copy link
Contributor Author

@swift-ci please test

@egorzhdan
Copy link
Contributor Author

@swift-ci please test macOS

Clang recently started wrapping more types in `clang::ElaboratedType` after this change: https://reviews.llvm.org/D112374

This broke some assumptions in ClangImporter, specifically in enum handling logic. This change adjusts those.

Fixes these tests in rebranch:
* `Interop/Cxx/enum/anonymous-with-swift-name-module-interface.swift`
* `Interop/Cxx/enum/anonymous-with-swift-name-objc-module-interface.swift`
* `Interop/Cxx/enum/anonymous-with-swift-name.swift`
* `Interop/Cxx/enum/c-enums-NS_OPTIONS-NS_REFINED_FOR_SWIFT.swift`
* `Interop/Cxx/enum/c-enums-NS_OPTIONS.swift`
* `Interop/Cxx/enum/c-enums-withOptions-omit.swift`
* `Interop/Cxx/class/inheritance/fields-module-interface.swift`
* `Interop/Cxx/class/inheritance/fields.swift`
* `Interop/Cxx/class/inheritance/functions-module-interface.swift`
* `Interop/Cxx/class/inheritance/sub-types-module-interface.swift`
* `Interop/Cxx/class/inheritance/type-aliases-module-interface.swift`
@egorzhdan egorzhdan force-pushed the egorzhdan/clang-elaborated branch from 9a6435a to 8d98f50 Compare November 22, 2022 13:52
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

@egorzhdan
Copy link
Contributor Author

@swift-ci please test

@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

Copy link
Contributor

@zoecarver zoecarver left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM thanks

@egorzhdan egorzhdan merged commit cef0158 into main Nov 28, 2022
@egorzhdan egorzhdan deleted the egorzhdan/clang-elaborated branch November 28, 2022 21:11
egorzhdan added a commit that referenced this pull request Dec 1, 2022
This applies the same trick as #62190 for newly written code.

Fixes two C++ interop tests in rebranch:
* `Interop/Cxx/enum/c-enums-NS_OPTIONS-api-notes-renamed-options.swift`
* `Interop/Cxx/enum/c-enums-NS_OPTIONS-swift-named-options.swift`

rdar://102858524
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ interop Feature: Interoperability with C++

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants