profile
viewpoint

apple/swift 53945

The Swift Programming Language

AnthonyLatsis/Alerta 1

An iOS native-style alert controller you can customize to your heart's content.

AnthonyLatsis/Anchora 1

A small framework that abstracts over UIKit's Auto Layout engine in a native style to tidy up your constraints.

AnthonyLatsis/Sombra 1

A simple retroaction on CALayer to support vibrant image projections as shadows.

AnthonyLatsis/Convenia 0

Conveniences for development with Swift

AnthonyLatsis/Huffman 0

Huffman encoder with a binary tree visualizer

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 4263d76329f81020df461543a8a6ccb40138a1a0

CodeCompletion: Annotate archetypes, generic parameters and dependent members

view details

push time in a day

PR opened apple/swift

Reviewers
CodeCompletion: Annotate archetypes, generic parameters and dependent…

… members

+105 -58

0 comment

6 changed files

pr created time in 2 days

create barnchAnthonyLatsis/swift

branch : ide-misc

created branch time in 2 days

delete branch AnthonyLatsis/swift

delete branch : ide-misc

delete time in 2 days

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 2b10686c74674b81fc9134a985717ead93ea6104

IDE: Custom 'init' members only require post-dot escaping on a metatype

view details

push time in 2 days

PR opened apple/swift

Reviewers
Parser: Highlight 'self' and 'Self' correctly when allowed to be an identifier
+20 -0

0 comment

2 changed files

pr created time in 2 days

create barnchAnthonyLatsis/swift

branch : ide-misc2

created branch time in 2 days

create barnchAnthonyLatsis/swift

branch : ide-misc

created branch time in 2 days

push eventAnthonyLatsis/ShapeIt

Anthony Latsis

commit sha 0635eea4db63c3f303fbb2e2e2a788203e1b0a89

Ensure compatibility with the latest Xcode and Swift releases

view details

push time in 6 days

pull request commentapple/swift

AST: Add a no-type-parameters early return to findProtocolSelfReferences

@swift-ci please smoke test

AnthonyLatsis

comment created time in 8 days

Pull request review commentapple/swift

Implement backward-compatible closure capture behavior with parser lookup disabled

 bool ASTScopeDeclConsumerForUnqualifiedLookup::consume(   return factory.isFirstResultEnough(); } +bool ASTScopeDeclConsumerForUnqualifiedLookup::consumePossiblyNotInScope(+    ArrayRef<VarDecl *> vars) {+  if (factory.hasPreciseScopingOfVarDecls())+    return false;++  for (auto *var : vars) {+    if (!factory.Name.getFullName().isSimpleName(var->getName()))+      continue;++    factory.Results.push_back(LookupResultEntry(var));+  }++  return false;+}+

Was it intentional to always return false here?

slavapestov

comment created time in 8 days

PullRequestReviewEvent

PR opened apple/swift

Reviewers
AST: Add a no-type-parameters early return to findProtocolSelfReferences

I was going to add this to ProtocolDecl::findProtocolSelfReferences but it looks like GenericFunctionType is purposely ignorant of its type parameters

+4 -0

0 comment

1 changed file

pr created time in 8 days

create barnchAnthonyLatsis/swift

branch : 3-liner

created branch time in 8 days

Pull request review commentapple/swift

Small availability checking fixes

 protocol Protocol7 : BaseProtocol where T == (PrivateStruct) -> Void {   associatedtype X : BaseProtocol where X.T == (PrivateStruct) -> Void   // expected-error@-1 {{associated type in an internal protocol uses a private type in its requirement}} }++private protocol PrivateProtocol {} // expected-note 2{{type declared here}}++struct GenericStruct<T> {+  struct Inner where T : PrivateProtocol {}+  // expected-error@-1 {{struct must be declared private because its generic requirement uses a private type}}+  func nonGenericWhereClause() where T : PrivateProtocol {}+  // expected-error@-1 {{instance method must be declared private because its generic requirement uses a private type}}+}

Thanks a bunch, what an oversight!

slavapestov

comment created time in 9 days

PullRequestReviewEvent

delete branch AnthonyLatsis/swift

delete branch : SR-4758-concrete-assoc-types

delete time in 11 days

push eventapple/swift

Antoine Cœur

commit sha 4c30f8bd6de5487603ed645cc4dd2a2983f4f0ba

appendingPathComponent(:isDirectory:) should account for isDirectory

view details

Owen Voorhees

commit sha 6b6b640e133ca547139c6586eb0dcbf7933b46ec

[Driver] Don't test for null source locations in driver diagnostics swift-driver doesn't emit these, and there's no reason to check that they're present when using the integrated driver.

view details

Xiaodi Wu

commit sha 26cda274ca78b1df246521ba1eeea33285b57d5f

[stdlib] Simplify 'BinaryFloatingPoint.init?<T: BinaryFloatingPoint>(exactly: T)'

view details

Joe Groff

commit sha 023066c1966c63ab3b7a4baee31ac24d29b7de36

SILGen: Relax assertion that incorrectly tripped on lowered opaque capture types. When lowering the SILConstantInfo for a closure implementation type with captures, we are more conservative about substituting opaque types in the capture, since the underlying types may only be available in the local context. This means the SILConstantInfo type may not in fact be exactly what you get from `SILFunction::getFunctionTypeInContext` referencing the implementation function from its originating context, since those opaque types will be substituted in the local context. Fixes SR-13480 | rdar://problem/68159831.

view details

Egor Zhdan

commit sha 30f7b9ecef834a6ca0fa1fb8f1ae37815569a126

WinSDK: extract Performance submodule Currently some of the headers get included into `WinSDK.WinSock2` via windows.h

view details

Mike Ash

commit sha ece0399d601eec1069131f465bdbe7e16f4c6a50

[Runtime] Have ConcurrentReadableHashMap use 1-byte or 2-byte indices when possible.

view details

Brent Royal-Gordon

commit sha 0a94737ff1496e048bbda720f9d8b2184b7d4aa8

Emit -enable-experimental-concurrency into module interfaces …when the module is built with that flag. Fixes rdar://69322538.

view details

Pavel Yaskevich

commit sha 8c6098a3de956ca058d55a0d4875b29e3ce38498

[CSFix] Add a fix to detect when type of couldn't be inferred

view details

Kuba Mracek

commit sha a20118b54deebb2aa768294b19ef25de62339b23

When building modules on secondary threads via RunSafelyOnThread, request 8 MB of stack

view details

Andrew Trick

commit sha 28294725d4c468d41da49c48f0323d494f314a03

Change SIL ref_element_addr getFieldNo() to return a unique index. I don't have a test case for this bug based on the current code. But the fix is clearly needed to have a unique AccessStorage object for each property. The AccessPath commits will contain test cases for this functionality.

view details

Doug Gregor

commit sha 6fe5245899d6613e0d7e35a1ee539d8a84114678

Fix grammatical error in a new comment

view details

Robert Widmann

commit sha 76cd4bf16079909137ae6d8542f0ebe15f295cbf

[NFC] Differential Incremental External Dependencies in DependencyTracker Also perform the plumbing necessary to convince the rest of the compiler that they're just ordinary external dependencies. In particular, we will still emit these depenencies into .d files, and code completion will still index them.

view details

Robert Widmann

commit sha 1b01f213830ab7ce351c83c91721634ee41aa394

[Gardening] Add a spot of documentation about withReferenceDependencies

view details

Robert Widmann

commit sha 044f85ad9c48aac43affa6c91686292d9a3d4bde

Add ModuleDepGraphFactory This completes the missing piece from #34073 and means the frontend may now serialize moduledecl-based dependencies.

view details

Andrew Trick

commit sha 5ae231eaabc96939c0141c5388617df84018ca31

Rename getFieldNo() to getFieldIndex(). Do I really need to justify this?

view details

Slava Pestov

commit sha bbd79a2db2b88a6e086b897ddebb424356c913b4

ASTScope: unqualifiedLookup() entry point does not need the name If we're searching for a declaration with a given name, the name should be entirely encapsulated inside the DeclConsumer. Otherwise, there might not be a specific name at all, if we're performing code completion for example (once LookupVisibleDecls starts to use ASTScope, anyway).

view details

Slava Pestov

commit sha 49e371c563aa3afc2df811ad7af343cb1921a48f

ASTScope: Remove crossCheckWithAST()

view details

Slava Pestov

commit sha f8fb071f0fd0dd56f5d670696e453d0093d8ee9c

ASTScope: Remove ASTScopeImpl::getDeclContext()

view details

Robert Widmann

commit sha e646ef2cbe18e7a61056fe2f1a2176cc36259261

Add incrementalExternalDepend as an Incremental NodeKind

view details

Robert Widmann

commit sha 3ba33b93eb2e72e46e6ec6464a51e3d38d455660

Install Faux Cross-Module Incremental Infrastructure In Driver Treat any incremental external depends like normal external depends. This will eventually become the fallback behavior for cross-module incremental builds.

view details

push time in 12 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@slavapestov Thank you for looking through this in such short terms.

AnthonyLatsis

comment created time in 12 days

push eventapple/swift

Anthony Latsis

commit sha 826f17e53422d284edeeaf7ed6f13a122cd10f27

Decouple detection of «Self ==» constraints from SelfReferenceKind

view details

Anthony Latsis

commit sha 4ee517f65cded3bcfc707ed277113165db486167

AST: Refactor SelfReferenceKind in preparation for #33767 This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential

view details

Anthony Latsis

commit sha ec10c5dbc905c8ac0dfba3efefa6d435697be8a3

Merge pull request #34249 from AnthonyLatsis/selfrefkind-refactor AST: Refactor SelfReferenceKind in preparation for #33767

view details

push time in 12 days

delete branch AnthonyLatsis/swift

delete branch : selfrefkind-refactor

delete time in 12 days

PR merged apple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential.

+186 -166

5 comments

3 changed files

AnthonyLatsis

pr closed time in 12 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

The few source compat FAILs are clone failures that can be observed in some neighbouring builds too, so I think the patch will are alright.

AnthonyLatsis

comment created time in 12 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please test source compatibility

AnthonyLatsis

comment created time in 12 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please test source compatibility release

AnthonyLatsis

comment created time in 13 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please test source compatibility release

AnthonyLatsis

comment created time in 13 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please smoke test

AnthonyLatsis

comment created time in 13 days

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 4ee517f65cded3bcfc707ed277113165db486167

AST: Refactor SelfReferenceKind in preparation for #33767 This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential

view details

push time in 13 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please test source compatibility release

AnthonyLatsis

comment created time in 13 days

push eventAnthonyLatsis/swift

Antoine Cœur

commit sha 4c30f8bd6de5487603ed645cc4dd2a2983f4f0ba

appendingPathComponent(:isDirectory:) should account for isDirectory

view details

Owen Voorhees

commit sha 6b6b640e133ca547139c6586eb0dcbf7933b46ec

[Driver] Don't test for null source locations in driver diagnostics swift-driver doesn't emit these, and there's no reason to check that they're present when using the integrated driver.

view details

Xiaodi Wu

commit sha 26cda274ca78b1df246521ba1eeea33285b57d5f

[stdlib] Simplify 'BinaryFloatingPoint.init?<T: BinaryFloatingPoint>(exactly: T)'

view details

Joe Groff

commit sha 023066c1966c63ab3b7a4baee31ac24d29b7de36

SILGen: Relax assertion that incorrectly tripped on lowered opaque capture types. When lowering the SILConstantInfo for a closure implementation type with captures, we are more conservative about substituting opaque types in the capture, since the underlying types may only be available in the local context. This means the SILConstantInfo type may not in fact be exactly what you get from `SILFunction::getFunctionTypeInContext` referencing the implementation function from its originating context, since those opaque types will be substituted in the local context. Fixes SR-13480 | rdar://problem/68159831.

view details

Mike Ash

commit sha ece0399d601eec1069131f465bdbe7e16f4c6a50

[Runtime] Have ConcurrentReadableHashMap use 1-byte or 2-byte indices when possible.

view details

Pavel Yaskevich

commit sha 8c6098a3de956ca058d55a0d4875b29e3ce38498

[CSFix] Add a fix to detect when type of couldn't be inferred

view details

Doug Gregor

commit sha 6fe5245899d6613e0d7e35a1ee539d8a84114678

Fix grammatical error in a new comment

view details

Artem Chikin

commit sha d913fc609f191a01bc131f37858b00b87d94a328

[Build Script] Pass down a CMake path to swift-driver's build script

view details

Doug Gregor

commit sha f07c7d15feb4444c603e404f8e10274f275a7104

[Type checker] Eliminate a use-after-free due to C++ temporaries. Found by Brent using ASan, thank you!

view details

Alexis Laferrière

commit sha 14e6772dc04cf778ba393bebc21a0a8b8ada3603

Consider inherited platform unavailability to silence diagnostics rdar://68597591

view details

Pavel Yaskevich

commit sha 1fb69a7d43f4c3aa58d88309d54537bce61f3d56

[Diagnostics] Diagnose cases when it's impossible to infer type for `nil` Detect and diagnose situations when it's invalid to use `nil` literal without more context e.g. `_ = nil`, `nil as? Int`, or `_ = nil!`.

view details

Pavel Yaskevich

commit sha 7d6a11021030731e4e617bb5a8a995d20dc65087

[CSSimplify] Allow `optional object` constraint to look through holes If right-hand side (optional type) has been determined to be a hole, let's establish that optional object of a hole is a hole and continue searching for a solution.

view details

Pavel Yaskevich

commit sha 1b5ce2b88f6c1adde6a30cb7b0b15955628a7fde

[CSBindings] Start recording `SpecifyContextualTypeForNil` fix when `nil` is bound to a hole

view details

Pavel Yaskevich

commit sha e30bdacd5792737cb1e31a9ba884b1bf6e513028

[CSBindings] Adjust impact of an event when `nil` is bound to a hole

view details

Pavel Yaskevich

commit sha a2b3b545230df44734077af68f59adde65fc3067

[CSGen] Rework constraint generation for `nil` to avoid failing

view details

Michael Gottesman

commit sha a1f4a43483c5c57e7879e40749dee3b4a3ec01ff

[ownership] Teach the ownership verifier how to verify that guaranteed yielded values are only used within the coroutine's lifetime. I think validating this was an oversight from the bringup of coroutines. I discovered this while writing test cases for coroutine lifetime extension. I realized it was possible to write a test case that should have triggered this but was not. I added some tests to make sure that we continue to flag this in the future. rdar://69597888

view details

Pavel Yaskevich

commit sha f96d6d348679f75313ac97a0e8451a34e3ec10fa

[Diagnostics] Remove obsolete special case for `_ = nil`

view details

Doug Gregor

commit sha 81f0f37accd31612d25825275b15a426073d27e0

[Concurrency] (De-)mangling for SIL @async function types.

view details

Michael Gottesman

commit sha 0b3d0aba67f08f6cd1b0e11bea162d5327fd87fd

Merge pull request #34090 from gottesmm/pr-eed6b1ec619c4e45094d3a737baacc1c4b6d8303 [ownership] Teach the ownership verifier how to verify that guaranteed yielded values are only used within the coroutine's lifetime.

view details

Doug Gregor

commit sha 2ad5b43cf5ee54feb600e9346719c02d8cd7729b

Merge pull request #34083 from DougGregor/function-builders-fixits-use-after-free [Type checker] Eliminate a use-after-free due to C++ temporaries.

view details

push time in 13 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please smoke test

AnthonyLatsis

comment created time in 13 days

delete branch AnthonyLatsis/swift

delete branch : coself-mut

delete time in 14 days

push eventapple/swift

Anthony Latsis

commit sha 8f43d888b8fd88540c5ba3d770a857928ac0b3a7

Sema: Disallow usage of settable Self-returning storage requirements on existential base

view details

Anthony Latsis

commit sha 3bc381ba0c25e3b7c1165c5f86a38e582cb88689

Merge pull request #34214 from AnthonyLatsis/coself-mut Sema: Disallow usage of settable Self-returning storage requirements …

view details

push time in 14 days

PR merged apple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

…on existential base

In the future we could refine this rule so that we could safely make use of the getter and disallow interaction with the setter.

Although #34005 landed just 2 weeks ago, we could still use settable subscripts before that, so this is a source breaking change.

+52 -12

8 comments

2 changed files

AnthonyLatsis

pr closed time in 14 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please test source compatibility

AnthonyLatsis

comment created time in 15 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please test source compatibility debug

AnthonyLatsis

comment created time in 15 days

pull request commentapple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

@swift-ci please smoke test

AnthonyLatsis

comment created time in 16 days

PR opened apple/swift

AST: Refactor SelfReferenceKind in preparation for #33767

This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential.

+184 -166

0 comment

3 changed files

pr created time in 16 days

create barnchAnthonyLatsis/swift

branch : selfrefkind-refactor

created branch time in 16 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please test source compatibility debug

AnthonyLatsis

comment created time in 16 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

Looks like the source compat suite's deterministically acting up for some other reason :(

AnthonyLatsis

comment created time in 17 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please test source compatibility debug

AnthonyLatsis

comment created time in 17 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please smoke test macOS

AnthonyLatsis

comment created time in 17 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please test source compatibility release

AnthonyLatsis

comment created time in 18 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please smoke test

AnthonyLatsis

comment created time in 18 days

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 8f43d888b8fd88540c5ba3d770a857928ac0b3a7

Sema: Disallow usage of settable Self-returning storage requirements on existential base

view details

push time in 18 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please test source compatibility release

AnthonyLatsis

comment created time in 18 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

@swift-ci please smoke test

AnthonyLatsis

comment created time in 18 days

pull request commentapple/swift

Sema: Disallow usage of settable Self-returning storage requirements …

Should we aim for a specialized diagnostic for such assignments right away instead?

AnthonyLatsis

comment created time in 18 days

PR opened apple/swift

Reviewers
Sema: Disallow usage of settable Self-returning storage requirements …

…on existential base

In the future we could refine this rule so that we could safely make use of the getter and disallow interaction with the setter.

Although #34005 landed just 2 weeks ago, we could still use settable subscripts before that, so this is a source breaking change.

+49 -12

0 comment

2 changed files

pr created time in 18 days

create barnchAnthonyLatsis/swift

branch : coself-mut

created branch time in 18 days

Pull request review commentapple/swift

AST, Sema: Teach findProtocolSelfReferences that some stdlib collections preserve variance

 enum E0 { class C0 {   func f() -> Self { } // okay -  func g(_ ds: Self) { } // expected-error{{covariant 'Self' can only appear as the type of a property, subscript or method result; did you mean 'C0'?}}+  func g(_ ds: Self) { } // expected-error{{covariant 'Self' can only appear as the possibly optional type of a property, subscript or method result; did you mean 'C0'?}}

I had a good thought on this and I think the user intent is too vague to warrant a fix-it (which is supposed to actually fix the issue, rather than falling back to the closest alternative that compiles). We cannot tell whether the user really wanted to use dynamic Self or thought Self is equivalent to the enclosing type. On top of that, protocol witnesses complicate the situation because stubs want to preserve Self when in covariant position, regardless of whether the witness is supported on the adopter.

AnthonyLatsis

comment created time in 19 days

PullRequestReviewEvent

push eventtheblixguy/swift

swift-ci

commit sha cb55c32bfbb172cea01fc51f1315d1ccb9ac847c

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 211b843076ed0c248f9e1651f8a48fd44c248050

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha f0dedafa3263562ccf104ed4efb6e5109ff342d2

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 3f190e6c4bb00a53a5567232cd92279d4f6f7b92

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha ea4fbf04613b3530110a58ab5a1d142fad8b4468

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 6d5dbe2bf31d1c2e2f3273e8e2631ee55777a963

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 0c593cb41cbc61c5cf3dd97e1c2542f831d47869

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha b513625fccd83214647404d1a536fe381d203d39

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 55919a501e1d9e478b1d9f4c58fb4af9fe23f94d

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 4b5cdc140296d5f90253eb6f19ecdf9d16e7ed5b

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha ea1b01feea3d7cf448a708179f6feb652d70965f

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Arnold Schwaighofer

commit sha a5dfae23805be2061a90dbb941c3abd37ffdf96e

Update test IRGen/pic.swift for changed code generation rdar://66790508

view details

Nathan Hawes

commit sha 0d81e9e18eeb7a037ee44180a8522c5cbac911a4

Merge pull request #33407 from nathawes/cherry-pick-fix-for-irgen-pic-test [master-rebranch] Cherry pick fix for IRGen/pic.swift test from master-next

view details

swift-ci

commit sha a8a56eb96dd634712eb4fc2e77995e82f9344c29

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 2dbd6228eba8acb374b7c0ec3f5e1f800e6bbe35

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 20f71965d85505180f8896e7d7f01d5ac7d47975

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha ad0fa230b355d7d7ebeb80502347f35a7c49769c

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 4c18ddcd0a9719bef18b147d1ec8d118b9de7e1b

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

swift-ci

commit sha 70cc0081bd0d16154d2a1695730bc54cc8af31bd

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Augusto Noronha

commit sha 7e714c5839ab533db3766efc071f266afa4bada1

Fix reading metadata from ELF sections (cherry picked from commit 7cd920403d2005df6d18ff7c9c545467a2568577)

view details

push time in 19 days

pull request commentapple/swift

GSB: Watch out for a concrete ResolvedType in ArchetypeType::resolveNestedType

@slavapestov ping

AnthonyLatsis

comment created time in 19 days

Pull request review commentapple/swift

ASTScope: Take start location into account when modeling local pattern bindings

 var i: Int = b.my_identity() // CHECK-EXPANDED-NEXT:                 `-BraceStmtScope {{.*}}, [11:18 - 11:19] // CHECK-EXPANDED-NEXT:             `-TopLevelCodeScope {{.*}}, [13:1 - 21:28] // CHECK-EXPANDED-NEXT:               `-BraceStmtScope {{.*}}, [13:1 - 21:28]-// CHECK-EXPANDED-NEXT:                 |-PatternEntryDeclScope {{.*}}, [13:5 - 13:9] entry 0 'c'-// CHECK-EXPANDED-NEXT:                   `-PatternEntryInitializerScope {{.*}}, [13:9 - 13:9] entry 0 'c'-// CHECK-EXPANDED-NEXT:                 |-TypeAliasDeclScope {{.*}}, [15:1 - 15:15]+// CHECK-EXPANDED-NEXT:                 `-PatternEntryDeclScope {{.*}}, [13:5 - 21:28] entry 0 'c'+// CHECK-EXPANDED-NEXT:                   |-PatternEntryInitializerScope {{.*}}, [13:9 - 13:9] entry 0 'c'+// CHECK-EXPANDED-NEXT:                   |-TypeAliasDeclScope {{.*}}, [15:1 - 15:15]

Note: It seems like the TypeAliasDeclScope got overindented along the way.

slavapestov

comment created time in 19 days

PullRequestReviewEvent

pull request commentapple/swift

Update CHANGELOG.md for #34005

ping

AnthonyLatsis

comment created time in 20 days

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 87a5d058544c23163561aca14cb438825b8c6efe

Add a SILGen test for collection upcasts

view details

push time in 22 days

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha a9c89695fa7e92e2e7f0f7745d53a050c4e1cbbb

AST, Sema: Teach findProtocolSelfReferences that Swift.Dictionary preserves variance of its Value

view details

Anthony Latsis

commit sha be016c849758221378e5886e0ae923e4b6b4a405

Diag: Fix inaccuracy in dynamic_self_invalid

view details

push time in 24 days

pull request commentapple/swift

AST, Sema: Teach findProtocolSelfReferences that Swift.Array preserves variance of its Element

Ought the conversion to be special compared to other Array upcasts? The SIL generated for let x = p.foo() looks pretty run-of-the-mill:

// takesP(arg:)
sil hidden [ossa] @$s4test6takesP3argyAA1P_p_tF : $@convention(thin) (@in_guaranteed P) -> () {
// %0 "arg"
bb0(%0 : $*P):
  debug_value_addr %0 : $*P, let, name "arg", argno 1
  %2 = open_existential_addr immutable_access %0 : $*P to $*@opened(X) P
  %3 = witness_method $@opened(X) P, #P.foo {{.*}} : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @owned Array<τ_0_0>
  %4 = apply %3<@opened(X) P>(%2) : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @owned Array<τ_0_0>
  // function_ref _arrayForceCast<A, B>(_:)
  %5 = function_ref @$ss15_arrayForceCastySayq_GSayxGr0_lF : $@convention(thin) <τ_0_0, τ_0_1> (@guaranteed Array<τ_0_0>) -> @owned Array<τ_0_1>
  %6 = apply %5<@opened(X) P, P>(%4) : $@convention(thin) <τ_0_0, τ_0_1> (@guaranteed Array<τ_0_0>) -> @owned Array<τ_0_1>
  debug_value %6 : $Array<P>, let, name "x"
  destroy_value %4 : $Array<@opened(X) P>
  destroy_value %6 : $Array<P>
  %10 = tuple ()
  return %10 : $()
}

// _arrayForceCast<A, B>(_:)
sil [serialized] @$ss15_arrayForceCastySayq_GSayxGr0_lF : $@convention(thin) <τ_0_0, τ_0_1> (@guaranteed Array<τ_0_0>) -> @owned Array<τ_0_1>

I am always happy to add more tests though!

AnthonyLatsis

comment created time in 24 days

PR opened apple/swift

Reviewers
Coself array

Extending this to other covariant stdlib collections is problematic due to the Hashable requirement (except for the Value type of a dictionary).

+96 -20

0 comment

8 changed files

pr created time in 24 days

create barnchAnthonyLatsis/swift

branch : coself-array

created branch time in 24 days

Pull request review commentapple/swift

[Property Wrappers] Support local property wrappers

 VarDecl *VarDecl::getPropertyWrapperProjectionVar() const {   return getPropertyWrapperBackingPropertyInfo().projectionVar; } +void VarDecl::visitAuxiliaryDecls(llvm::function_ref<void(VarDecl *)> visit) const {+  if (getDeclContext()->isTypeContext())+    return;++  if (auto *backingVar = getPropertyWrapperBackingProperty())+    visit(backingVar);++  if (auto *projectionVar = getPropertyWrapperProjectionVar())+    visit(projectionVar);+}

Ah, that one got dropped on the floor because I ended up focusing entirely on figuring out a proper way to insert synthesized decls into a BraceStmt post-factum. They simply get visited here instead, right? I am sort of ashamed of myself for missing the point, but that's awesome; thanks, Holly!

hborla

comment created time in 24 days

PullRequestReviewEvent

push eventapple/swift

Anthony Latsis

commit sha 5db2b78d34fbb98a34eb1838e5072bcc3147304a

Update CHANGELOG.md

view details

push time in a month

pull request commentapple/swift

Update CHANGELOG.md for #34005

Yeah, I am just curious whether referencing a PR directly is acceptable :)

AnthonyLatsis

comment created time in a month

pull request commentapple/swift

Update CHANGELOG.md for #34005

Are we allowed to reference pull requests in place of JIRA reports though?

AnthonyLatsis

comment created time in a month

PR opened apple/swift

Reviewers
Update CHANGELOG.md for #34005
+20 -0

0 comment

1 changed file

pr created time in a month

create barnchapple/swift

branch : coself-changelog

created branch time in a month

delete branch AnthonyLatsis/swift

delete branch : coself

delete time in a month

push eventapple/swift

Anthony Latsis

commit sha 103a8218380c9d72160f9ca3aa7d1e0ba4d8f1bc

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

view details

Anthony Latsis

commit sha 33401ae147a04ce628cf246504b67729063358e5

CS: Use the curried opened type when building a VarDecl member ref This ensures that we erase opened archetypes before closing an existential result

view details

Anthony Latsis

commit sha 9f58968fa394444115a3bef9e72a4b7a146fa0d0

Add silgen and run-time tests

view details

Anthony Latsis

commit sha d953fa646d79a2bf1faf1de2f6018b40bcecdf52

Merge pull request #34005 from AnthonyLatsis/coself Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

view details

push time in a month

PR merged apple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

Hopefully, whatever complications were impeding this in 926e3711d0dc are long gone.

Bonus: now we can use protocols with such requirements as types (iff the requirement was the reason we previously couldn't).

+295 -105

4 comments

10 changed files

AnthonyLatsis

pr closed time in a month

pull request commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

@swift-ci please smoke test Windows

AnthonyLatsis

comment created time in a month

pull request commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

@swift-ci please smoke test

AnthonyLatsis

comment created time in a month

pull request commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

@swift-ci please smoke test and merge

AnthonyLatsis

comment created time in a month

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

 func testExistentialDispatch(p: P) { // CHECK:   destroy_addr [[P_RESULT]] : $*P // CHECK:   dealloc_stack [[P_RESULT]] : $*P   _ = p.f()++// CHECK:   [[PCOPY_ADDR:%[0-9]+]] = open_existential_addr immutable_access [[P]] : $*P to $*@opened([[N:".*"]]) P+// CHECK:   [[P_RESULT:%[0-9]+]] = alloc_stack $P+// CHECK:   [[PCOPY_ADDR_1:%[0-9]+]] = alloc_stack $@opened([[N]]) P+// CHECK:   copy_addr [[PCOPY_ADDR]] to [initialization] [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   [[P_P_GETTER:%[0-9]+]] = witness_method $@opened([[N]]) P, #P.p!getter : {{.*}}, [[PCOPY_ADDR]]{{.*}} : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @out τ_0_0+// CHECK:   [[P_RESULT_ADDR2:%[0-9]+]] = init_existential_addr [[P_RESULT]] : $*P, $@opened([[N]]) P+// CHECK:   apply [[P_P_GETTER]]<@opened([[N]]) P>([[P_RESULT_ADDR2]], [[PCOPY_ADDR_1]]) : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @out τ_0_0+// CHECK:   destroy_addr [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   destroy_addr [[P_RESULT]] : $*P+// CHECK:   dealloc_stack [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   dealloc_stack [[P_RESULT]] : $*P+  _ = p.p

If this output happens to be sane, why do we need PCOPY_ADDR_1 in addition to PCOPY_ADDR?

AnthonyLatsis

comment created time in a month

Pull request review commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

 func testExistentialDispatch(p: P) { // CHECK:   destroy_addr [[P_RESULT]] : $*P // CHECK:   dealloc_stack [[P_RESULT]] : $*P   _ = p.f()++// CHECK:   [[PCOPY_ADDR:%[0-9]+]] = open_existential_addr immutable_access [[P]] : $*P to $*@opened([[N:".*"]]) P+// CHECK:   [[P_RESULT:%[0-9]+]] = alloc_stack $P+// CHECK:   [[PCOPY_ADDR_1:%[0-9]+]] = alloc_stack $@opened([[N]]) P+// CHECK:   copy_addr [[PCOPY_ADDR]] to [initialization] [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   [[P_P_GETTER:%[0-9]+]] = witness_method $@opened([[N]]) P, #P.p!getter : {{.*}}, [[PCOPY_ADDR]]{{.*}} : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @out τ_0_0+// CHECK:   [[P_RESULT_ADDR2:%[0-9]+]] = init_existential_addr [[P_RESULT]] : $*P, $@opened([[N]]) P+// CHECK:   apply [[P_P_GETTER]]<@opened([[N]]) P>([[P_RESULT_ADDR2]], [[PCOPY_ADDR_1]]) : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @out τ_0_0+// CHECK:   destroy_addr [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   destroy_addr [[P_RESULT]] : $*P+// CHECK:   dealloc_stack [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   dealloc_stack [[P_RESULT]] : $*P+  _ = p.p++// CHECK:   [[PCOPY_ADDR:%[0-9]+]] = open_existential_addr immutable_access [[P]] : $*P to $*@opened([[N:".*"]]) P+// CHECK:   [[P_RESULT:%[0-9]+]] = alloc_stack $P+// CHECK:   [[PCOPY_ADDR_1:%[0-9]+]] = alloc_stack $@opened([[N]]) P+// CHECK:   copy_addr [[PCOPY_ADDR]] to [initialization] [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   [[P_SUBSCRIPT_GETTER:%[0-9]+]] = witness_method $@opened([[N]]) P, #P.subscript!getter : {{.*}}, [[PCOPY_ADDR]]{{.*}} : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @out τ_0_0+// CHECK:   [[P_RESULT_ADDR:%[0-9]+]] = init_existential_addr [[P_RESULT]] : $*P, $@opened([[N]]) P+// CHECK:   apply [[P_SUBSCRIPT_GETTER]]<@opened([[N]]) P>([[P_RESULT_ADDR]], [[PCOPY_ADDR_1]]) : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> @out τ_0_0+// CHECK:   destroy_addr [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   destroy_addr [[P_RESULT]] : $*P+// CHECK:   dealloc_stack [[PCOPY_ADDR_1]] : $*@opened([[N]]) P+// CHECK:   dealloc_stack [[P_RESULT]] : $*P+  _ = p[] }  // CHECK-LABEL: sil hidden [ossa] @$s12dynamic_self28testExistentialDispatchClass{{[_0-9a-zA-Z]*}}F : $@convention(thin) (@guaranteed CP) -> ()+func testExistentialDispatchClass(cp: CP) { // CHECK: bb0([[CP:%[0-9]+]] : @guaranteed $CP): // CHECK:   [[CP_ADDR:%[0-9]+]] = open_existential_ref [[CP]] : $CP to $@opened([[N:".*"]]) CP // CHECK:   [[CP_F:%[0-9]+]] = witness_method $@opened([[N]]) CP, #CP.f : {{.*}}, [[CP_ADDR]]{{.*}} : $@convention(witness_method: CP) <τ_0_0 where τ_0_0 : CP> (@guaranteed τ_0_0) -> @owned τ_0_0 // CHECK:   [[CP_F_RESULT:%[0-9]+]] = apply [[CP_F]]<@opened([[N]]) CP>([[CP_ADDR]]) : $@convention(witness_method: CP) <τ_0_0 where τ_0_0 : CP> (@guaranteed τ_0_0) -> @owned τ_0_0 // CHECK:   [[RESULT_EXISTENTIAL:%[0-9]+]] = init_existential_ref [[CP_F_RESULT]] : $@opened([[N]]) CP : $@opened([[N]]) CP, $CP // CHECK:   destroy_value [[RESULT_EXISTENTIAL]]-func testExistentialDispatchClass(cp: CP) {   _ = cp.f()++// CHECK: [[CP_ADDR:%[0-9]+]] = open_existential_ref [[CP]] : $CP to $@opened([[N:".*"]]) CP+// CHECK: [[CP_ADDR_1:%[0-9]+]] = copy_value [[CP_ADDR]] : $@opened([[N]]) CP+// CHECK: [[CP_BORROWED:%[0-9]+]] = begin_borrow [[CP_ADDR_1]] : $@opened([[N]]) CP+// CHECK: [[CP_P_GETTER:%[0-9]+]] = witness_method $@opened([[N]]) CP, #CP.p!getter : {{.*}}, [[CP_ADDR]]{{.*}} : $@convention(witness_method: CP) <τ_0_0 where τ_0_0 : CP> (@guaranteed τ_0_0) -> @owned τ_0_0+// CHECK: [[APPLY_RESULT:%[0-9]+]] = apply [[CP_P_GETTER]]<@opened([[N]]) CP>([[CP_BORROWED]]) : $@convention(witness_method: CP) <τ_0_0 where τ_0_0 : CP> (@guaranteed τ_0_0) -> @owned τ_0_0+// CHECK: end_borrow [[CP_BORROWED]] : $@opened([[N]]) CP+// CHECK: destroy_value [[CP_ADDR_1]] : $@opened([[N]]) CP+// CHECK: [[RESULT_EXISTENTIAL:%[0-9]+]] = init_existential_ref [[APPLY_RESULT]] : $@opened([[N]]) CP : $@opened([[N]]) CP, $CP+// CHECK: destroy_value [[RESULT_EXISTENTIAL]] : $CP+  _ = cp.p

Same here, but with a borrow.

AnthonyLatsis

comment created time in a month

PullRequestReviewEvent
PullRequestReviewEvent

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 9f58968fa394444115a3bef9e72a4b7a146fa0d0

Add silgen and run-time tests

view details

push time in a month

pull request commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

@swift-ci please smoke test

AnthonyLatsis

comment created time in a month

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 33401ae147a04ce628cf246504b67729063358e5

CS: Use the curried opened type when building a VarDecl member ref This ensures that we erase opened archetypes before closing an existential result

view details

Anthony Latsis

commit sha 9ab98ba847c2594dc15675166008877f2cba5935

Add runtime tests

view details

push time in a month

push eventAnthonyLatsis/swift

Anthony Latsis

commit sha 103a8218380c9d72160f9ca3aa7d1e0ba4d8f1bc

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

view details

push time in a month

pull request commentapple/swift

Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

Should I be adding some execution tests?

AnthonyLatsis

comment created time in a month

PR opened apple/swift

Reviewers
Sema: Allow non-final classes to satisfy properties and subscripts with covariant Self

Hopefully, whatever complications were impeding this in 926e3711d0dc are long gone.

+97 -57

0 comment

6 changed files

pr created time in a month

create barnchAnthonyLatsis/swift

branch : coself

created branch time in a month

push eventapple/swift

Anthony Latsis

commit sha 8ee7b8fcafc008896a496dd0df9279ca3c4ff472

ASTContext: Tidy up the interface of getOpenedArchetypeSignature Drop a dead parameter, encapsulate input type canonicalization, and slightly improve the doc comment.

view details

Anthony Latsis

commit sha 8bc13cbf3af201a1f8816e06636791b59909df33

Merge pull request #33999 from AnthonyLatsis/cleanups/get-opened-archetype-signature ASTContext: Tidy up the interface of getOpenedArchetypeSignature

view details

push time in a month

delete branch AnthonyLatsis/swift

delete branch : cleanups/get-opened-archetype-signature

delete time in a month

PR merged apple/swift

ASTContext: Tidy up the interface of getOpenedArchetypeSignature

Drop a dead parameter, encapsulate input type canonicalization, and slightly improve the doc comment.

+8 -10

2 comments

3 changed files

AnthonyLatsis

pr closed time in a month

pull request commentapple/swift

ASTContext: Tidy up the interface of getOpenedArchetypeSignature

@swift-ci please smoke test macOS

AnthonyLatsis

comment created time in a month

pull request commentapple/swift

ASTContext: Tidy up the interface of getOpenedArchetypeSignature

@swift-ci please smoke test and merge

AnthonyLatsis

comment created time in a month

create barnchAnthonyLatsis/swift

branch : cleanups/get-opened-archetype-signature

created branch time in a month

PR opened apple/swift

Reviewers
ASTContext: Tidy up the interface of getOpenedArchetypeSignature

Drop a dead parameter, encapsulate input type canonicalization, and slightly improve the doc comment.

+8 -10

0 comment

3 changed files

pr created time in a month

Pull request review commentapple/swift-evolution

Unlock Existential Types for All Protocols

+# Unlock Existentials for All Protocols++* Proposal: [SE-NNNN](NNNN-unlock-existential-types-for-all-protocols.md)+* Authors: [Anthony Latsis](https://github.com/AnthonyLatsis), [Filip Sakel](https://github.com/filip-sakel), [Suyash Srijan](https://github.com/theblixguy)+* Review Manager: TBD+* Status: **Awaiting implementation**+++### Introduction++Swift currently offers the ability for protocols that meet certain criteria to be used as types. Trying to use an unsupported protocol as a type yields the error `[the protocol] can only be used as a generic constraint because it has 'Self' or associated type requirements`. This proposal aims to relax this artificial constraint imposed on such protocols.+++### Motivation++Currently, any protocol that has `Self` or associated type requirements is not allowed to be used as a type. Initially, this restriction reflected technical limitations (as Joe states [here](https://forums.swift.org/t/lifting-the-self-or-associated-type-constraint-on-existentials/18025)); however, such limitations have now been alleviated. As a result, users are left unable to utilize a powerful feature for certain protocols. That’s evident in a plethora of projects. For instance, the Standard Library has existential types such as [`AnyHashable`](https://developer.apple.com/documentation/swift/anyhashable) and [`AnyCollection`](https://developer.apple.com/documentation/swift/anycollection) and SwiftUI has [`AnyView`](https://developer.apple.com/documentation/swiftui/anyview). ++Generics are most often the best mechanism for type-level abstraction, which relies on the compiler knowing type information during compilation. However, type information is not always a gurantee, which is why the value-level abstraction of existential types is extremely useful in some cases.++One such case is heterogenous collections, which require value-level abstraction to store their elements of various types:++```swift+protocol Identifiable {+    associatedtype ID: Hashable +    +    var id: ID { get }+}++struct AnyIdentifiable { +    typealias ID = AnyHashable+    +    var id: ID { ... }+}++let myIdentifiables: [AnyIdentifiable]+```++Furthermore, dynamic environments are also known to lack type information. Therefore value-level abstraction can be exploited in cases such as previewing an application, where the application's components are dynamically replaced, in the file system where a file representing an unknown type might be stored, and in server environments, where various types could be exchanged between different computers.++All in all, supporting existential types for all protocols is useful for many situations that involve dynamicity. Moreover, there are many questions by language users asking about this behavior. Taking everything into consideration, we are confident that addressing this abnormality in the language will build a stronger foundation for [future additions](https://forums.swift.org/t/improving-the-ui-of-generics/22814) .+++### Proposed Solution++We propose that the constraint prohibiting the use of some protocols as types be lifted. As a result, boilerplate code in many projects - especially libraries and frameworks - will be significantly reduced.+++### Detailed Design ++Should this proposal be accepted, the compiler would no longer differentiate between protocols that don’t have `Self` or associated type requirements and those that do. However, some restrictions would apply to the use of requirements referencing associated types as seen in the below examples.++#### Examples:++1. Regular Protocol++```swift+protocol Foo {+    var bar: Int { get }+}++let foo: Foo = ... ✅++let bar: Int = foo.bar ✅+++extension Foo {+    var baz: Self { +        self+    }++    var opaqueSelf: some Foo {+        self+    }+}++let baz: some Foo =+    foo.baz ✅+    +let opaqueSelf: some Foo =+    foo.opaqueSelf ✅+```++ 2. Protocol with `Self` and Associated Type Requirements ++```swift+protocol Foo {+    associatedtype Bar+    +    var bar: Bar { get }+}++let foo: Foo = ... ✅ +++let bar: Any = foo.bar ❌+// We don’t know what type +// `Bar` is on the existential+// type of `Foo`.

What I mean is that let bar: Any = foo.bar would still be an error, unless we get this to work now as well (probable, but not certain), not because we don't know what type Bar is, but because the compiler is simply lacking the necessary handling for these cases.

let id = identifiable.id
// What would this be:
// `Any` or `Hashable`?

Hashable; Any should be a last resort, when there are no upper bounds at all.

filip-sakel

comment created time in a month

PullRequestReviewEvent

delete branch AnthonyLatsis/swift

delete branch : fixed-means-same-type

delete time in a month

pull request commentapple/swift

AssociatedTypeInference: Generalize computeFixedTypeWitness to consider type parameters

@swift-ci please smoke test Windows

AnthonyLatsis

comment created time in a month

more