Skip to content

Conversation

DougGregor
Copy link
Member

SE-0341 introduced opaque parameter declarations, which are syntactic sugar for introducing a generic parameter that is only used once in the signature of the type. Provide a refactoring action that replaces all each use of an opaque parameter declarations in a declaration, e.g.,

func lazyConcatenate<T> {
  _ sequence1: some Sequence<T>, _ sequence2: some Sequence<T>
) -> some Sequence<T> { ... }

with a newly-created generic parameter, so the end result is equivalent but works with early compilers:

func lazyConcatenate<T, T1: Sequence<T>, T2: Sequence<T>> {
  _ sequence1: T1, T2
) -> some Sequence<T> { ... }

…nerics.

SE-0341 introduced opaque parameter declarations, which are syntactic
sugar for introducing a generic parameter that is only used once in
the signature of the type. Provide a refactoring action that replaces
all each use of an opaque parameter declarations in a declaration, e.g.,

    func lazyConcatenate<T> {
      _ sequence1: some Sequence<T>, _ sequence2: some Sequence<T>
    ) -> some Sequence<T> { ... }

with a newly-created generic parameter, so the end result is
equivalent but works with early compilers:

    func lazyConcatenate<T, T1: Sequence<T>, T2: Sequence<T>> {
      _ sequence1: T1, T2
    ) -> some Sequence<T> { ... }
@DougGregor DougGregor requested a review from ahoppen as a code owner November 13, 2022 16:21
@DougGregor
Copy link
Member Author

@swift-ci please test

@DougGregor
Copy link
Member Author

@swift-ci please test

@DougGregor
Copy link
Member Author

@swift-ci please test

@DougGregor DougGregor merged commit b397a10 into swiftlang:main Nov 15, 2022
@DougGregor DougGregor deleted the refactor-opaque-parameter-to-generic branch November 15, 2022 01:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants