swift-ci
e152c14c0a
Merge pull request #37162 from DougGregor/spawn-let
2021-04-30 02:19:16 -07:00
Doug Gregor
5d8174da57
[Concurrency] Introduce spawn let
2021-04-29 22:42:40 -07:00
Pavel Yaskevich
46bc3b672d
Merge pull request #37115 from xedin/disable-only-in-perf
...
[CSSimplify] Allow overload choices with missing labels to be considered for diagnostics
2021-04-29 10:25:16 -07:00
Robert Widmann
fae8d9a713
Merge pull request #37073 from CodaFi/top-billing
...
[Gardening] Remove An Unused TLCD Checking Entrypoint
2021-04-27 22:57:15 -07:00
Pavel Yaskevich
957e05cfb1
[Constraint] Allow constraints to be disabled only in "performance" mode
2021-04-27 16:11:47 -07:00
Rintaro Ishizaki
712e439fe9
Merge pull request #37069 from rintaro/ide-rdar76714968
...
[CodeCompletion] Peform complete `filterSolutions` in code completion
2021-04-26 18:21:41 -07:00
Robert Widmann
602aa3bd8b
[Gardening] Remove An Unused TLCD Checking Entrypoint
2021-04-26 16:42:22 -07:00
Rintaro Ishizaki
848031825e
[CodeCompletion] Peform complete filterSolutions in code completion
...
Not-filtering solutions causes unacceptable slownesses in some cases.
For now, filter solutions as normal typechecking does to restore the
performance.
rdar://76714968
2021-04-26 13:03:32 -07:00
Pavel Yaskevich
51ff12d06e
[ConstraintLocator] Augment ContextualType element to carry its purpose
...
Having purpose attached to the contextual type element makes it much
easier to diagnose contextual mismatches without involving constraint
system state.
2021-04-26 09:51:21 -07:00
Strieker
4e2b67cbae
[NFC] Resolved merge conflict in CSSimplify.cpp after making changes to improve error handling for composed wrapped value mismatches
2021-04-22 11:49:21 -07:00
Strieker
c9b53ec66f
[ConstraintSystem] Created a locator in CSGen to store the location where the wrappedValue type of a property wrapper was determined and added necessary logic so that a constraint locator can recognize a composed property wrapper’s wrapped value type in CSFix.cpp, CSFix.h, and CSSimplify.cpp.
2021-04-22 11:31:41 -07:00
Strieker
3891dc7fdc
[ConstraintSystem] Added necessary logic so that a constraint locator can recognize a composed property wrapper’s wrapped value type.
2021-04-22 11:31:41 -07:00
Alejandro Alonso
444c35cf8d
Merge pull request #36953 from Azoy/isType-isDeclType
...
[NFC] Introduce isDecl and getDeclType
2021-04-20 15:33:00 -04:00
Azoy
9ed732f0ab
Introduce isDecl and getDeclType
...
fix enum logic issue
fix tests
guard against null types
2021-04-20 02:22:16 -04:00
Pavel Yaskevich
7e406a753d
Merge pull request #36948 from Jumhyn/placeholder-type-get-fix
...
[Sema] Fix stale reference passed to PlaceholderType::get
2021-04-19 11:09:12 -07:00
Nathan Hawes
f75f5fe78d
Merge pull request #36879 from nathawes/track-match-call-result
...
[ConstraintSystem] Record parameter bindings in solutions (NFC)
2021-04-18 06:10:23 +10:00
Frederick Kellison-Linn
237b73d7b2
[Sema] Fix stale reference passed to PlaceholderType::get
2021-04-16 23:00:12 -04:00
Nathan Hawes
c57c403ffa
[ConstraintSystem] Record parameter bindings in solutions (NFC)
...
This saves us from needing to re-match args to params in CSApply and is also
useful for a forthcoming change migrating code completion in argument position
to use the solver-based typeCheckForCodeCompletion api.
rdar://76581093
2021-04-16 18:32:06 +10:00
Pavel Yaskevich
d57c112845
[ConstraintSystem] NFC: Replace isOperatorBindOverload with isOperatorDisjunction
2021-04-14 10:34:17 -07:00
Pavel Yaskevich
fef108f2ac
[ConstraintSystem] NFC: Move partitioning methods to DisjunctionChoiceProducer
2021-04-14 09:54:39 -07:00
Pavel Yaskevich
c9a289e1b5
[ConstraintSystem] Add a method to determine whether disjunction represents an operator
2021-04-13 15:43:15 -07:00
Pavel Yaskevich
985843a21f
[ConstraintSystem] Add a new transitive conformance constraint
...
Conformance constraints could be transferred through conversions,
but that would also require checking implicit conversions
such as optional and pointer promotions for conformance is the
type itself doesn't conform, for that let's add a special constraint
`TransitivelyConformsTo`.
2021-04-07 17:55:11 -07:00
Pavel Yaskevich
ed8491c15b
Revert "[TypeChecker] Add a flag to disable Double<->CGFloat implicit conversion"
...
This reverts commit 3c731d8748 .
2021-03-31 11:10:21 -07:00
Pavel Yaskevich
f00c578761
Merge pull request #34401 from xedin/implicit-cgfloat-conversion
...
[DNM][TypeChecker] Implement Double <-> CGFloat implicit conversion
2021-03-31 10:20:28 -07:00
Holly Borla
76c4c3dc3f
[Diagnostics] Add back a dedicated fix/diagnostic for using an invalid
...
type as a property wrapper.
2021-03-24 11:24:21 -07:00
Holly Borla
7cd8add885
[ConstraintSystem] Add a property wrapper constraint to delay checking
...
if an inferred wrapper type is a property wrapper until that type is
resolved.
2021-03-24 11:24:21 -07:00
Holly Borla
f05589f6c4
[Diagnostics] Improve diagnostics for passing an invalid projected
...
value argument.
2021-03-24 11:24:21 -07:00
Doug Gregor
52096a640e
SE-0302: Rename ConcurrentValue/@concurrent to Sendable/@Sendable.
2021-03-18 23:48:21 -07:00
Pavel Yaskevich
a559ca8c53
[TypeChecker/SE-0307] NFC: Fix typos and clarify a couple of comments
...
Thanks Xiaodi Wu!
2021-03-17 14:11:53 -07:00
Doug Gregor
d6fc1fd60f
Implement conversions for global-actor-qualified functions.
...
One can convert from a function value without a global actor to a
similar function type that does have a global actor, but one cannot
remove or change a global actor on a function type.
2021-03-17 00:51:26 -07:00
Pavel Yaskevich
3c731d8748
[TypeChecker] Add a flag to disable Double<->CGFloat implicit conversion
2021-03-17 00:18:19 -07:00
Pavel Yaskevich
cd3ec8c508
[ConstraintSystem] Allow attempting generic unary operators in presence of Double<->CGFloat conversion
...
Not all of the unary operators have `CGFloat` overloads,
so in order to preserve previous behavior (and overall
best solution) with implicit Double<->CGFloat conversion
we need to allow attempting generic operators for such cases.
```swift
let _: CGFloat = -.pi / 2
```
`-` doesn't have `CGFloat` overload (which might be an oversight),
so in order to preserve type-checking behavior solver can't be
allowed to pick `-(Double) -> Double` based on overload of `/`,
the best possible solution would be with `/` as `(CGFloat, CGFloat) -> CGFloat`
and `-` on a `FloatingPoint` protocol.
2021-03-17 00:18:19 -07:00
Pavel Yaskevich
9197f924cd
[ConstraintSystem] Increase impact of implicit value-to-value conversion
...
This makes it possible to pick `CGFloat` function/operator overloads even
in the presence of literals, otherwise non-default literal score gets in
a way and solver ends up producing a lot more solutions with implicit
Double<->CGFloat conversion than it can disambiguate, so it's better to
just preserve the old behavior and pick `CGFloat` concrete overloads when
appropriate.
2021-03-17 00:18:18 -07:00
Pavel Yaskevich
c77d0862bb
[ConstraintSystem] Record all Double <-> CGFloat conversions performed along a current solver path
...
This information makes it easier to compute a score for the next
implicit value conversion solver would have to perform.
2021-03-17 00:18:15 -07:00
Pavel Yaskevich
4b01c8fd11
[ConstraintSystem] Adjust impact of implicit Double <-> CGFloat conversions
...
- Prefer CGFloat -> Double over the other way around to avoid
ambiguities;
- Every new conversion impacts the score by factor of number of
previously applied conversions to make it possible to select
solutions that require the least such conversions.
- Prefer concrete overloads with Double <-> CGFloat conversion
over generic ones.
2021-03-17 00:18:14 -07:00
Pavel Yaskevich
6382e7be66
[ConstraintSystem] Favor overloads which match choice type exactly
2021-03-17 00:18:12 -07:00
Pavel Yaskevich
f9eb71ddad
[ConstraintSystem] Attempt Double <-> CGFloat implicit conversion only once and re-use results
2021-03-17 00:18:11 -07:00
Pavel Yaskevich
7aed970cdf
[ConstraintLocator] Add is convenience method to simplify check for kind of implicit conversion
2021-03-17 00:18:10 -07:00
Pavel Yaskevich
8c6017687a
[ConstraintSystem] Limit new implicit conversion to only Double <-> CGFloat
2021-03-17 00:18:10 -07:00
Pavel Yaskevich
2b935bab7c
[ConstraintSystem] Add conversion restriction to cover implicit conversion from/to CGFloat
2021-03-17 00:18:08 -07:00
Pavel Yaskevich
7ab93250ba
[ConstraintSystem] Add a new score kind to model implicit value conversions
2021-03-17 00:18:07 -07:00
Pavel Yaskevich
389fd29e6c
[ConstraintSystem] Add a path element to represent an implicit conversion
2021-03-17 00:18:06 -07:00
Pavel Yaskevich
fb89d11931
[ConstraintLocator] NFC: Adjust name of isForKeyPathComponent to clarify its meaning
...
New name is `isInKeyPathComponent` since it's implemeneted as a
check for presence of `KeyPathComponent` element in the locator
that covers every sub-element contained in a key path component
as well.
2021-03-12 09:58:54 -08:00
Pavel Yaskevich
a8ad32d55b
[ConstraintLocator] Add a new locator accessor to check whether it belongs to key path component result
2021-03-12 09:27:18 -08:00
Holly Borla
0948105fa3
Merge pull request #36368 from hborla/local-property-wrapper-crash
...
[SILGen] Don't emit property wrapper generator functions for local property wrappers with initializers.
2021-03-09 14:36:16 -08:00
Holly Borla
0a700b7c41
[SILGen] Don't emit property wrapper generator functions for local property
...
wrappers with initializers. Instead, call the property wrapper initializer
directly.
2021-03-09 10:29:07 -08:00
Anthony Latsis
79c0d93b86
Sema: Fix dynamic Self behavior for a «super» base expression
2021-03-09 19:20:43 +03:00
Anthony Latsis
8242d843cd
NFC, Sema: Further propagate the locator through to doesStorageProduceLValue
2021-03-09 17:01:50 +03:00
Anthony Latsis
42e510c260
NFC, Sema: Derive base expr from locator in getTypeOfMemberReference
2021-03-09 17:01:45 +03:00
Pavel Yaskevich
31ccd6099a
[ConstraintSystem] Maintain insertion order of all shrunk expressions and their overload sets
2021-03-05 00:07:30 -08:00