Robert Widmann
53f2974e27
[NFC] Remove unnecessary TypeCheckers from sequence folding
2019-11-05 20:30:40 -08:00
Robert Widmann
e907d3bc52
[NFC] Remove the TypeChecker from Typo Correction
2019-11-05 20:29:36 -08:00
Hamish Knight
96e5f2a145
Allow non-ephemeral diag to refer to argument labels
...
Use getArgDescription to improve the diagnostic
for invalid temporary pointer conversions.
2019-11-05 13:51:53 -08:00
Hamish Knight
912a7acc1e
Add FunctionArgApplyInfo::getArgDescription
...
This commit adds a member which produces a string
describing the argument being applied. This will
either be its argument label or position in the
argument list.
2019-11-05 13:51:53 -08:00
Pavel Yaskevich
c800bde8e1
[Diagnostics] Try to find overlap between src/dst protocols in assignment mismatch
2019-11-05 12:43:32 -08:00
Pavel Yaskevich
11644b3f31
[Diagnostics] Diagnose assignment type mismatches related to unresolved members
2019-11-05 12:43:32 -08:00
Pavel Yaskevich
3586af6e8a
[Diagnostics] Properly diagnose assignment type mismatches when either side is optional
2019-11-05 12:38:13 -08:00
Pavel Yaskevich
30440d8235
[Diagnostics] Properly diagnose assignment mismatch in ambiguity cases
2019-11-05 12:38:13 -08:00
Pavel Yaskevich
7cd7cd43e6
[Diagnostics] Port self assignment diagnostic to the new framework
2019-11-05 12:38:13 -08:00
Pavel Yaskevich
cb3a0fbcc8
[ConstraintSystem] Extend use of the treat r-value as l-value fix to more cases
...
Cover not only immutability but also type mismatch cases and clarify
behavior when one of the sides of the type conversion is optional.
2019-11-05 12:38:13 -08:00
Hamish Knight
d0dbbf9f89
[CSDiagnostics] Add ephemeralness ambiguity notes
2019-11-03 08:42:25 -08:00
Hamish Knight
7077a68b83
[Sema] Diagnose unsound pointer conversions
...
Diagnose ephemeral conversions that are passed to @_nonEphemeral
parameters. Currently, this defaults to a warning with a frontend flag
to upgrade to an error. Hopefully this will become an error by default
in a future language version.
2019-11-03 08:42:25 -08:00
Pavel Yaskevich
2dddfcb190
Merge pull request #28013 from xedin/trailing-closures-not-so-trailing
...
[Diagnostics] Port invalid trailing closure use diagnostics
2019-11-01 15:38:20 -07:00
Pavel Yaskevich
6bb659c5a3
[Diagnostics] Add a diagnostic for incorrect use of trailing closures
2019-10-31 20:58:01 -07:00
Robert Widmann
8a69f886ad
Merge pull request #27955 from AnthonyLatsis/bracestmt_cleanup
...
NFC: Solidify and tidy up the BraceStmt interface
2019-10-31 13:48:40 -07:00
Pavel Yaskevich
82c2456295
Merge pull request #27976 from xedin/extraneous-call
...
[Diagnostics] Introduce extraneous call fix
2019-10-31 11:57:03 -07:00
Pavel Yaskevich
1315207a22
[Diagnostics] Introduce extraneous call fix
...
Detect and diagnose attempts to call variables and/or properties
which don't have a function type, so can't really support
invocation.
2019-10-30 16:53:42 -07:00
Robert Widmann
abc6db13b1
Provide AST Context Getters To Protocol Inference
2019-10-30 12:55:42 -07:00
Robert Widmann
118f68b1be
Make getProtocol and getLiteralProtocol static utilities
2019-10-30 12:55:42 -07:00
Anthony Latsis
6325915b4b
NFC: Solidify and tidy up the BraceStmt interface
2019-10-30 16:43:59 +03:00
Robert Widmann
b849e51768
Use operator bool to claw back some readability
2019-10-29 16:56:21 -07:00
Robert Widmann
3e1a61f425
[NFC] Fold The Tri-State In Optional<ProtocolConformanceRef>
...
ProtocolConformanceRef already has an invalid state. Drop all of the
uses of Optional<ProtocolConformanceRef> and just use
ProtocolConformanceRef::forInvalid() to represent it. Mechanically
translate all of the callers and callsites to use this new
representation.
2019-10-29 16:55:56 -07:00
Pavel Yaskevich
58329e0c27
Revert "[Diagnostics][Qol] SR-11295 Emit diagnostics for same type coercion. "
2019-10-25 01:05:07 -07:00
Luciano Almeida
5d1eeacbe4
Resolving conflicts
2019-10-23 07:25:55 -03:00
Pavel Yaskevich
d5b232c26e
Merge pull request #27834 from xedin/for-in-diag
...
[TypeChecker] Produce a tailored diagnostic for `for-in` sequence fai…
2019-10-23 00:32:35 -07:00
Pavel Yaskevich
fb6ce64628
Merge pull request #27842 from xedin/if-ternary-diags
...
[Diagnostics] Improve if/ternary condition expression diagnostics
2019-10-23 00:32:06 -07:00
Pavel Yaskevich
74a7f3d8d0
[TypeChecker] Produce a tailored diagnostic for for-in sequence failures
...
`for-in` "sequence" expression is required to conform to `Sequence`.
2019-10-22 16:57:28 -07:00
Pavel Yaskevich
c4fee1d0c9
[ConstraintSystem] Use new condition element in constraint generation/diagnostics
2019-10-22 15:01:49 -07:00
Hamish Knight
be23ecc878
These functions don't need a TypeChecker
2019-10-22 09:23:33 -07:00
Luciano Almeida
4385dd854f
Creating UnnecessaryCoercion warning fix
2019-10-21 23:03:12 -03:00
Anthony Latsis
d64d45d3d6
@lvalue exposure fixes & prevention
2019-10-22 04:30:40 +03:00
Holly Borla
e5c99cace6
Merge pull request #27769 from hborla/anyobject-conformance-failure
...
[ConstraintSystem] Diagnose missing AnyObject conformance using the MissingConformance constraint fix.
2019-10-18 22:10:21 -04:00
Holly Borla
ea7c13e506
[Diagnostics] For now, don't diagnose layout requirement failures
...
in MissingConformanceFailure::diagnoseTypeCannotConform.
2019-10-18 14:00:18 -07:00
Holly Borla
0d95a84e91
[Diagnostics] Improve the error message for when a type fails to satisfy
...
`AnyObject` layout requirement.
2019-10-18 11:27:21 -07:00
Pavel Yaskevich
8d05192204
Merge pull request #27728 from xedin/port-extraneous-args
...
[Diagnostics] Diagnose extraneous argument(s) via fixes
2019-10-18 10:42:56 -07:00
Holly Borla
ec864fcd9c
[ConstraintFix] Don't pass along the RequirementKind to the MissingConformance
...
constraint fix. Instead, get the kind from the locator.
2019-10-18 09:03:06 -07:00
Pavel Yaskevich
14d9011c2b
Merge pull request #27759 from xedin/port-keypath-diags
...
[Diagnostics] Port more key path related failures to new framework
2019-10-18 01:02:43 -07:00
Holly Borla
f998349815
[Diagnostics] Add a tailored note for when the Wrapped type of an
...
optional satisfies a failed requirement.
2019-10-17 19:59:07 -07:00
Pavel Yaskevich
0d07cd87ac
[ConstraintSystem] Detect and diagnose contextual mismatches in key path components
2019-10-17 13:52:00 -07:00
Robert Widmann
56b6e53dae
Remove raw references to PatternBindingEntry APIs
...
Switch most callers to explicit indices. The exceptions lie in things that needs to manipulate the parsed output directly including the Parser and components of the ASTScope. These are included as friend class exceptions.
2019-10-17 13:31:14 -07:00
Holly Borla
ef0ecc41e5
[ConstraintSystem] Diagnose missing AnyObject conformance using
...
the MissingConformance constraint fix.
2019-10-16 20:38:00 -07:00
Luciano Almeida
d022c98e68
Returning false for unhandled expr in GenericArgumentsMismatchFailure
2019-10-16 22:55:04 -03:00
Pavel Yaskevich
d69a1a5eee
[CSDiagnostics] Attach extra argument ambiguity note to the overload choice
2019-10-16 10:19:26 -07:00
Pavel Yaskevich
b214b8a2bf
[Diagnostics] Introdduce multiple extraneous arguments diagnostic
2019-10-16 10:19:26 -07:00
Pavel Yaskevich
02688a9091
[Diagnostics] Tailored diagnostic for missing arguments in contextual conversion
2019-10-16 10:19:26 -07:00
Pavel Yaskevich
43f95a3e25
[Diagnostics] NFC: Adopt new getArgumentListExprFor API
2019-10-16 10:19:26 -07:00
Pavel Yaskevich
40ac874616
[Diagnostics] Diagnose extraneous arguments in a nullary call
2019-10-16 10:19:26 -07:00
Pavel Yaskevich
c97603f5d4
[CSDiagnostics] Diagnose extraneous arguments
2019-10-16 10:19:25 -07:00
Luciano Almeida
73dcc4b5e8
Merge branch 'master' of https://github.com/apple/swift into force-downcast-fix-explicit-coercion
2019-10-15 19:18:46 -03:00
Pavel Yaskevich
d90117bb8a
[Diagnostics] Remove argument handling from conformance failures
...
Argument-to-Parameter mismatch handles conformance failures
related to arguments, so the logic in `MissingConformanceFailure`
which wasn't entirely correct is now completely obsolete.
Resolves: rdar://problem/56234611
2019-10-14 00:34:37 -07:00