sort by:
Revision Author Date Message Commit Date
2edf2b2 [ClangImporter] Generic parameters can be Hashable too! (#10900) aa215e7e54 made sure we didn't try to construct Sets and Dictionaries with a non-Hashable key. However, that commit was a little too restrictive: there was no handling for imported generic parameters that were constrained to inherit from NSObject. Fortunately, recovering that information is fairly straightforward. rdar://problem/33222646 12 July 2017, 03:39:57 UTC
d067b63 Merge pull request #10898 from DougGregor/objc-accessors-sr-5025-4.0 [4.0] [Type checker] Handle inferred @objc for all accessor kinds. 12 July 2017, 01:06:52 UTC
405c8a2 Merge pull request #10896 from DougGregor/dont-bind-dependent-member-types-4.0 [4.0] [Type checker] Don't allow type variables to bind to dependent members. 12 July 2017, 01:06:37 UTC
02e5a21 Merge pull request #10792 from phausler/swift-4.0-branch-data_init_fast_paths Swift 4.0 branch data init fast paths 12 July 2017, 00:16:09 UTC
2fc3d39 [Type checker] Handle inferred @objc for all accessor kinds. Due to the wanton use of 'if' rather than 'switch', non-observing, non-get/set ccessors that got marked '@objc' would cause an assertion. Fix the materializeForSet case from the bug report as well as the addressor case. Fixes SR-5025 / rdar://problem/32426538. (cherry picked from commit ff7bfa8b29a7c2af8340b618fa0b2d68a069f6e0) 11 July 2017, 23:20:08 UTC
a77cbda Merge pull request #10887 from rudkx/fix-rdar33239714-4.0 [4.0] [Constraint system] Improve SE-0110 exception by allowing optional in… 11 July 2017, 23:04:44 UTC
d221ff1 [Type checker] Don't allow type variables to bind to dependent members. When a type variable binds to an (unresolved) dependent member type, it prevents us from inferring the type variable and adds no useful information to the system. Refuse to bind type variables to dependent member types. Fixes rdar://problem/32697033. (cherry picked from commit 138b0361d2bcbffd8769843cdd98da51573a3038) 11 July 2017, 22:54:14 UTC
c903b20 Name translation: Allow type name translation when cursor points to constructor call. rdar://33163114 (#10872) (#10882) 11 July 2017, 22:50:04 UTC
7fb3d6c Merge pull request #10880 from jckarter/key-path-failure-diagnosis-with-resolved-components-4.0 [4.0] Allow resolved KeyPath and KeyPathApplication exprs to re-type-check. 11 July 2017, 21:57:10 UTC
1def7a9 Merge pull request #10863 from jckarter/key-path-labeled-subscript-4.0 [4.0] Sema: Feed argument label and constraint locator info from key path subscript components into getCalleeDeclAndArgs. 11 July 2017, 21:55:07 UTC
8a9886f [Constraint system] Improve SE-0110 exception by allowing optional injection. There was an oversight in the exception that was added to SE-0110 to maintain compatibility for closure arguments. We were not allowing optional injection to happen for the closure being passed in, so things like: func test(_ fn: ((Int, Int))->()) {} test { x, y in } worked, but func test(_ fn: (((Int, Int))->())?) {} test { x, y in } did not. Fixes SR-5433 (rdar://problem/33239714). (cherry picked from commit 8605b29951cf27c36c1bb26b548efe1c754e9927) 11 July 2017, 20:58:11 UTC
6c45caa [ClangImporter] Structs lexically in an ObjC class are still top-level. (#10874) (#10878) Not every declaration that's syntactically in an Objective-C container is a member of that container. Double-check the decl context before adding it. This is technically a breaking change in non-asserts builds, because the struct really could be found via member lookup. But that should be considered a bug, and I /suspect/ no one is relying on it. rdar://problem/32451417 11 July 2017, 20:39:33 UTC
5b7ab1b [Utils] Update the branch info for swift-4.0-branch-07-11-2017 11 July 2017, 20:11:27 UTC
a578ee3 String Index Interchange, etc. (Changes for SE-0180 => swift-4.0-branch) (#10852) * [stdlib] Index interchange, part I * [stdlib] String index interchange, part II (UTF16) * [stdlib] String index interchange, part III (UTF8) * [stdlib] Bring back some SPI that Foundation-on-linux uses. * [stdlib] Minimal docs for the new string index * [stdlib] UTF8View Iterator and count specialization * [stdlib] Foundation SPI fixup * [stdlib] Fix a test: String.UTF8View has its own Iterator now * [stdlib] Small correction to UTF8 Iterator This works either way I suppose, but the code is clearer now. * [stdlib] UTF8View: count by iterating The fancy code didn't turn out to be any faster. * [stdlib] Speed String.UTF8View.count even more * [stdlib] Rebuild String.Index for UTF8View * [stdlib] Drop a couple bogus duplicate tests Only the last of each set of dups gets run anyway. See https://bugs.swift.org/browse/SR-5362 * [stdlib] Extend String index conversion tests for interchange test the new APIs as well as the legacy failing conversions. * [stdlib] Repair some doc comments Drive-by fix while cherry-picking. 11 July 2017, 19:56:42 UTC
5bbc672 [Foundation] Merge sequence initializer fast paths into one initializer 11 July 2017, 19:14:59 UTC
84d8508 [Foundation] Update Data sequence initializer to use initialize(from:) and add _copyContents 11 July 2017, 19:14:59 UTC
9876c77 [Foundation] Add fast paths for Data initialization for common sequences 11 July 2017, 19:14:59 UTC
dd1614c Merge pull request #10877 from moiseev/intents-availability-again-4 [swift-4.0-branch][overlay] Fixing the availability of INSearchCallHistoryIntent.init 11 July 2017, 18:06:04 UTC
a35947a Merge pull request #10860 from devincoughlin/exclusivity-separate-stored-props-4.0 11 July 2017, 17:42:53 UTC
1507e2a Sema: Allow KeyPath and KeyPathApplicationExprs to re-type-check during failure diagnosis. Fixes SR-5034 | rdar://problem/32488872. 11 July 2017, 17:42:19 UTC
5638e80 Push subscript label allocation for KeyPathComponents into the root constructor. A preemptive strike against memory management bugs in the future. (cherry picked from commit 963c58c4b5e57ca4b3cf9248a7230566cbc277f9) 11 July 2017, 17:26:30 UTC
5600fa8 Merge pull request #10869 from moiseev/default-profile-4 [swift-4.0-branch][overlay] Change INBooleanResolutionResul.defaultProfile to .isDefaultProfile 11 July 2017, 16:21:47 UTC
b794c85 [overlay] Fixing the availability of INSearchCallHistoryIntent.init Addresses: <rdar://problem/33206673> (cherry picked from commit 95d46b1ee0ce4b1bfd0d2c2c1c49686996210e1e) 11 July 2017, 16:14:59 UTC
0f20fb5 Merge pull request #10855 from slavapestov/stored-property-init-linkage-4.0 SILGen: Fix linkage for stored property initializers of private properties [4.0] 11 July 2017, 05:29:40 UTC
bd42a0a Merge pull request #10848 from rudkx/fix-rdar33043106-4.0 [4.0] Fix another subtle SE-0110-related break. 11 July 2017, 04:56:57 UTC
fcd389b Hack: allow dropping noescape-ness when overriding ObjC methods (#10867) In today's Swift, only non-optional function parameters can be non-escaping (and are by default). An optional function parameter uses a function type as a generic argument to Optional, and like any other generics that's considered an opaque and therefore possibly escaping use of the type. This is certainly unfortunate since it means a function parameter cannot be both Optional and non-escaping. However, this "unfortunate" becomes a concrete problem when dealing with Objective-C, which /does/ allow applying its 'noescape' attribute to a callback block marked 'nullable'. This is fine for /uses/ of methods with such parameters, but prevents anyone from /overriding/ these methods. This patch pokes a very narrow hole into the override checking to accomodate this: if a declaration comes from Objective-C, and it has an optional, non-escaping closure parameter, it's okay to override it in Swift with an optional, escaping closure parameter. This isn't strictly safe because a caller could be relying on the non-escaping-ness, but we don't have anything better for now. (This behavior will probably be deprecated in the future.) (Some people have noted that the old 'noescape' type attribute in Swift still works, albeit with a warning. That's not something people should have to type, though---we want to remove it from the language, as described in SE-0103.) rdar://problem/32903155 11 July 2017, 02:21:34 UTC
e6a225b Merge pull request #10854 from xedin/rdar-33190087-4.0 [4.0] [ConstraintSolver] Fix `shrink` to use correct primary expression as a candidate 11 July 2017, 01:21:01 UTC
a3e546c Merge pull request #10859 from DougGregor/limit-typo-correction-4.0 Introduce a command-line option to limit the # of typo corrections. 11 July 2017, 00:07:29 UTC
10737de Merge pull request #10857 from DougGregor/unavailable-witness-4.0 [Type checker] Bump warning about unavailable witnesses to an error in Swift 4 11 July 2017, 00:06:57 UTC
ecb5504 [overlay] Change INBooleanResolutionResul.defaultProfile to .isDefaultProfile <rdar://problem/31816908> (cherry picked from commit 5ab2e4d3a54644fe194bbdbbd51481e219f73787) 10 July 2017, 23:35:56 UTC
7967aa6 Merge pull request #10844 from aciidb0mb3r/remove-run-builtin-4.0 [Driver] Remove built-in `run` subcommand 10 July 2017, 22:35:40 UTC
706d31c Sema: Feed argument label and constraint locator info from key path subscript components into getCalleeDeclAndArgs. Fixes SR-5189 | rdar://problem/32713662. 10 July 2017, 22:06:30 UTC
5997323 [Exclusivity] Relax closure enforcement on separate stored properties (#10789) Make the static enforcement of accesses in noescape closures stored-property sensitive. This will relax the existing enforcement so that the following is not diagnosed: struct MyStruct { var x = X() var y = Y() mutating func foo() { x.mutatesAndTakesClosure() { _ = y.read() // no-warning } } } To do this, update the access summary analysis to summarize accesses to subpaths of a capture. rdar://problem/32987932 10 July 2017, 21:35:23 UTC
a642b43 Fix another subtle SE-0110-related break. The change to roll back a part of SE-0110 to allow multi-argument functions to be passed in places where functions taking a tuple are expected resulted in a regression in some cases where the fix would strip off the last ParenType from single-argument functions. Instead of stripping off parens from both function types we're trying to match when they both have them, strip off none. This ensures that we don't get summarily rejected in the nested matchTypes call by other SE-0110-related code that bails if the two types do not have the same "parenness". Fixes rdar://problem/33043106 / SR-5387. (cherry picked from commit acfa800341785ee73548369a4456118365005002) 10 July 2017, 21:33:41 UTC
011468b Update test with a higher typo correction limit (cherry picked from commit 7deafb262db176b515b23eb8f8eb1989b555d397) 10 July 2017, 21:21:08 UTC
d15753f Introduce a command-line option to limit the # of typo corrections. Typo correction can be particularly expensive, so introduce a command-line flag to limit the number of typo corrections we will perform per type-checker instance. Default this limit to 10. Addresses rdar://problem/28469270 to some extent. (cherry picked from commit f03685b6d08872ce95a497fd0125d05317486aa9) 10 July 2017, 21:21:07 UTC
d215659 [Type checker] Bump warning about unavailable witnesses to an error in Swift 4 Swift 3 allowed a requirement to be satisfied by an unavailable witness, which doesn't make sense. We've been warning about it in Swift 3 for a while; make it an error in Swift 4. (cherry picked from commit a6516a90c69767dcffca1b565e3039a0c367f8f9) 10 July 2017, 20:57:19 UTC
bb5736c SILGen: Fix linkage for stored property initializers of private properties Always give stored property initializers the linkage of the type that contains them, even if the property is less visible than the type. This fixes the case where a type defines a private property, and an extension in a different file from the same module defines a constructor. Fixes <rdar://problem/32743703>. 10 July 2017, 20:53:26 UTC
c607367 [ConstraintSolver] Fix `shrink` to use correct primary expression as a candidate When trying to identify candidates for shrinking we are missing the case when apply expression is a source of the assignment operator, which leads to incorrect results in some situations, because shrink is going to miss some required contextual information about assignment. Resolves: rdar://problem/33190087 10 July 2017, 20:42:49 UTC
47b2b7b Merge pull request #10820 from jckarter/key-path-generic-computed-4.0 [4.0] Support keypaths with dependently-generic computed components. 10 July 2017, 20:28:37 UTC
d2f276c [stdlib] Attaching document comment properly to AnyObject. NFC rdar://33155670 10 July 2017, 19:43:45 UTC
0083e39 [Driver] Remove built-in `run` subcommand This is as per discussion in https://bugs.swift.org/browse/SR-5332 10 July 2017, 18:04:06 UTC
7065a95 Merge pull request #10811 from jckarter/keypath-apply-lvalue-4.0 [4.0] Sema: Coerce [keyPath:] index to rvalue. 10 July 2017, 17:14:16 UTC
44e88af Merge pull request #10821 from itaiferber/4.0-encoders-eliminate-overlapping-exclusive-accesses [4.0] Remove overlapping exclusive accesses in encoders 10 July 2017, 16:47:46 UTC
26e35dd Merge pull request #10818 from itaiferber/4.0-jsonencoder-conditional-conformance-workarounds [4.0] JSONEncoder conditional conformance workarounds 10 July 2017, 15:52:34 UTC
732f90d Merge pull request #10822 from benlangmuir/cache-release-4 Fix sys::Cache for ref-counted values which caused memory leaks in SourceKit 10 July 2017, 15:42:19 UTC
11d5471 Merge pull request #10773 from jckarter/keypath-in-any-context-4.0 [4.0] Sema: Simplifying a KeyPathExpr's type should *bind* to the specific type, not accept a subtype constraint. 09 July 2017, 18:19:09 UTC
2bf2aa5 Merge pull request #10823 from gottesmm/swift-4.0-branchrdar30181104 Fix the swap_refcnt test on linux. 08 July 2017, 17:09:07 UTC
76b94a1 Merge pull request #10727 from DougGregor/gsb-no-unresolved-potential-archetypes-4.0 [4.0] GSB] Stop creating unresolved potential archetypes. 08 July 2017, 16:08:14 UTC
9147482 Fix the swap_refcnt test on linux. The problem here is that we were performing a naive negative FileCheck test for retain/release. In certain modes, we would not have any retains/releases along normal control paths but would have retains on unreachable paths. This test only is trying to test if normal code paths have this issue. To work around this issue, I created a small utility pass that prunes all non-unreachable instructions from blocks with an unreachable terminator. This is useful functionality in general when analyzing SIL since often times one will have large fatal error blocks that disguise the true behavior of the function. In this specific case, I just pipe in the normal sil output and run it through sil-opt. sil-opt then runs just the utility pass and I then FileCheck that sil-opt output. rdar://30181104 (cherry picked from commit 9933f0f3b225b71b06d614c903ea626bdadedfa5) 08 July 2017, 00:58:01 UTC
fbb89c0 [Markup] Actually collect multiple - Tag fields This was erasing the set of tags each time a - Tag simple field was encountered. rdar://problem/32877771 07 July 2017, 23:55:31 UTC
c0e72b2 [Markup] Print Tags in documentation comment XML This information needs to be picked up through SourceKit. It might be useful as both metadata for sorting/filtering as well as presentation, so it makes sense to print it in the normal XML inside CommentParts. rdar://problem/32877771 07 July 2017, 23:55:31 UTC
61d27ff Fix sys::Cache for ref-counted values which caused memory leaks in SourceKit Our libcache implementation of swift::sys::Cache was broken for ref-counted values (which are used by e.g. the SourceKit ASTManager). It would always `retain(value)` in `set(key, value)`, but under the hood libcache shares values, so we would only get one `release(value)` if the same value was used across multiple keys, or if the same value *and* key were set multiple times. This was causing us to never release ASTs cached by SourceKit even when the underlying libcache purged itself under memory pressure. rdar://problem/21619189 07 July 2017, 23:36:16 UTC
64d91be Remove overlapping exclusive accesses in encoders {JSON,Plist}{Encoder,Decoder} had overlapping accesses which were supposed to be mutually exclusive in their `with(pushedKey:)` methods. Removes those methods and the overlapping accesses. 07 July 2017, 23:09:14 UTC
a518475 IRGen: `Builtin.UnknownObject` should not be hardcoded to use ObjC refcounting. It's more appropriate to use `Unknown` refcounting, which we correctly handle in the face of non-ObjC-interop elsewhere. Fixes a problem where the Linux standard library would contain an unresolvable reference to `objc_release`. 07 July 2017, 21:09:47 UTC
ecbec36 IRGen: Support for computed properties with dependent generic context. Use the KeyPath implementation's new support for instantiating and dealing with captures to lower the generic context required to dispatch computed accessors with dependent generics. 07 July 2017, 21:09:23 UTC
934c7c9 KeyPaths: Support captured arguments in computed components. A necessary precursor to supporting subscripts and unspecialized generic accessors in general. Give get/set components the ability to have an "argument" area that gets instantiated by copying out of the key path pattern arguments at instantiation time, and which holds "witness" information for how to copy, destroy, equate, and hash arguments. 07 July 2017, 21:08:20 UTC
63b519b Allow application of JSON strategies in all cases One of the limitations of not having conditional conformance at the moment is that the implementation of `init(from:)` and `encode(to:)` on types which require it is that failure to cast dependent types to `Encodable` or `Decodable` is a runtime failure. There is no way to statically guarantee that the wrapped type is `Encodable` or `Decodable`. As such, in those implementations, at best we can directly call `(element as! Encodable).encode(to: encoder)`, or similar. However, this encodes the element directly into an encoder, without giving the encoder a chance to intercept the type. This is problematic for `JSONEncoder` because it cannot apply a strategy if it doesn't get to intercept the type. This gives a temporary workaround for JSON strategies because of internal Foundation knowledge. 07 July 2017, 20:22:23 UTC
34a5f03 Merge pull request #10806 from gottesmm/swift-4.0-branchrdar32887993 [4.0] [sil-combine] When deleting a dead partial_apply, insert a destroy for all non-trivial captured values. 07 July 2017, 19:34:11 UTC
c462d32 [README] Update the Xcode version to beta 2 07 July 2017, 19:17:07 UTC
21b8d52 Merge pull request #10725 from aschwaighofer/swift-4.0-branch-irgen-sort-target-features [4.0] IRGen: Sort the target-features string 07 July 2017, 18:44:37 UTC
3ea7228 Fix warnings in DispatchQueue.sync() implementation when using a compiler with SE-0176 support. (#10769) 07 July 2017, 18:16:41 UTC
074956c Sema: Coerce [keyPath:] index to rvalue. Fixes SR-5384 | rdar://problem/33160409. (cherry picked from commit a3c6dbc469a17fd8123e428d145292a9b47c6587) 07 July 2017, 17:32:22 UTC
a3229fa [stdlib] StringProtocol no longer refines RangeReplaceableCollection (#10801) https://bugs.swift.org/browse/SR-5379 (cherry picked from commit 1a1c1a0d21833c9745ba10fe0708df02fe1e6ae8) 07 July 2017, 15:08:58 UTC
5af7650 [sil-combine] When deleting a dead partial_apply, insert a destroy for all non-trivial captured values. partial_apply is a confusing instruction since it: 1. Is printed with a function signature. 2. Takes in some arguments of the same type as the underlying types of the given function signatures. 3. Always takes in those arguments at +1 regardless of the convention printed on the partial apply. Eventually we will split the partial apply representation so that the box is represnted explicitly separately from the function signature, eliminating this confusion. The problem that we ran into here is that we were not treating @in values from an alloc_stack or @in_guaranteed at all correctly. The reason why the tests did not catch this is that a seperate sil_combine optimization that eliminates trivially dead live ranges was eliminting the alloc_stack of the @in value in our test. In contrast, the @in_guaranteed case was actually never tested at all. I added tests for all of these conventions and in addition added a special mode to SILCombine that stops the alloc_stack eliminating during testing. rdar://32887993 07 July 2017, 00:48:41 UTC
d574ed6 Merge pull request #10797 from akyrtzi/sourcekit-ignore-index-store-flag-4.0 [4.0][SourceKit] Ignore the index-store-path flag for the sourcekitd requests 06 July 2017, 21:33:47 UTC
5cfccda Merge pull request #10798 from xedin/rdar-33135487-4.0 [4.0] [QoI] Don't try to lookup members on incorrect type while diagnosing keypath components 06 July 2017, 20:43:34 UTC
1b4a7c6 [SourceKit] Ignore the index-store-path flag for the sourcekitd requests It was active for clang PCH/module creation coming from sourcekitd which was unnecessary index-store data creation. 06 July 2017, 18:43:00 UTC
4d5d30b [QoI] Don't try to lookup members on incorrect type while diagnosing keypath components While trying to diagnose problems related to keypath components don't assume that type of the component is always correct, check before trying to see if it's bridged type or has members. Resolves: rdar://problem/33135487 (cherry picked from commit c45073efd1bbdf629ff97b1b2f3bb7fc60321f9d) 06 July 2017, 18:40:10 UTC
448affa Merge pull request #10788 from DougGregor/gsb-nested-in-concrete-4.0 [4.0] [GSB] Cope with elided conformance requirements in concrete nested types 06 July 2017, 17:53:16 UTC
1cca928 Merge pull request #10687 from phausler/swift-4.0-branch-slice_range_expressions [Foundation] slices of slices that use range expressions incorrectly calculated relative indexing 06 July 2017, 17:29:42 UTC
672612f [GSB] Cope with elided conformance requirements in concrete nested types. If we encounter an associated type reference within a concrete type, but haven't seen a specific protocol requirement, add the protocol conformance. Fixes rdar://problem/33139928 and another crasher. (cherry picked from commit 1c6c51d1374e96338ffeec0636a9d22603430af5) 06 July 2017, 06:35:11 UTC
3552784 Sema: Simplifying a KeyPathExpr's type should *bind* to the specific type, not accept a subtype constraint. We want the type of a KeyPathExpr to be the specific *KeyPath<T, U> subclass appropriate for the literal, with upcasts to a more general contextual type, since we rely on that invariant elsewhere to extract the base and projected value types. Fixes SR-5008 | rdar://problem/32395076. 06 July 2017, 02:16:30 UTC
5b8d333 Avoid building conformance lookup tables when we don't have to. (#10765) - Deinitializers never get a custom Objective-C name. - Classes and protocols are never bridged themselves; that only matters for structs and enums. This avoids another circularity issue like the one in a8bc132565ef, where the Clang importer ends up importing a class and hands it to the type checker, which then asks about conformances. The conformance lookup table goes to add the extension from the Swift module, except that the Swift module is what asked for the import in the first place. It's possible there's a more general solution here, but this particular change is good even in the non-crashy cases, and definitely safe for Swift 4.0. Even if the test case is even more idiosyncratic than the last one. The test case change for SourceKit is probably due to the first category not triggering the import of the other two categories. Changes in import order have been known to affect source compatibility, though not frequently. However, categories are not intended to be ordered in the first place. There's still more we can do in this space, and implicitly depending on these calls /outside/ of the importer to control category import order was quite brittle anyway. SR-5330 / rdar://problem/32677610 (cherry picked from commit 88556eec944a181aa8c9b1fc642fbfd8d0df1f40) 05 July 2017, 22:52:51 UTC
7bf0dbb Merge pull request #10746 from xedin/rdar-31849281-4.0 [4.0] [QoI] Improve the fix-it for out-of-order arguments 03 July 2017, 02:05:00 UTC
542c58f [QoI] Improve the fix-it for out-of-order arguments Change the fix-it to move the argument to its correct location in one go. This happens by removing it from one location and inserting it in the other (as opposed to the original implementation which swapped one argument with the preceding one). The commas separating the arguments are adjusted to match the moved argument. Add new tests for reordering regular arguments, variadic arguments, and function arguments. Resolves: SR-4715 rdar://problem/31849281 (cherry picked from commit 00833a234309103dba19d487567cf6fe5d510528) 02 July 2017, 20:04:30 UTC
e0b775d Merge pull request #10729 from itaiferber/4.0-non-optional-coding-paths [4.0] Make coding paths non-optional [DO NOT MERGE] 01 July 2017, 21:34:38 UTC
63eed0f Merge pull request #10739 from jrose-apple/4.0-conditional-surrender [4.0] Do stricter checking of -D command line arguments 01 July 2017, 02:54:59 UTC
93cfc6e [ClangImporter] Make conformance loading lazier. (#10737) Previously, the importer queued up conformances to complete once it was done importing the current batch of declarations. However, if there was a serialized Swift module that extended an imported type to add a conformance in exactly the wrong way, the importer could end up asking for that conformance later---even before the reference to the imported type was resolved. This led to a crash in the deserializer "while reading conformance for type X". Instead of this "pending actions" queue, we can just use the mechanisms already in place for lazily loading conformances. That way they'll get filled out on demand, which is better all around anyway. This does mean putting the requirement signature into the "lazy" part of the conformance, though. This does as a side effect mean that /all/ of the witnesses for the imported conformance may be opaque---that is, they will never be devirtualized to a particular implementation. However, they previously would have referred to methods implemented in Objective-C anyway, which are always dispatched with objc_msgSend. So this should have no practical effect. rdar://problem/32346184 (cherry picked from commit a8bc132565ef84cd79ccd3615d150a2c99944c50) 01 July 2017, 02:53:16 UTC
9a97d50 Merge pull request #10643 from CodaFi/distant-early-warning 01 July 2017, 00:23:53 UTC
11b14fd Merge pull request #10248 from CodaFi/conditional-surrender [Shepherd] Do stricter checking of -D command line arguments 01 July 2017, 00:23:22 UTC
6239326 Merge pull request #10735 from graydon/rdar-32984579-emit-bc-depends-on-bridging-pch-as-well-swift-4.0-branch [Bridging PCH] Move dependency-on-bridging-PCH to -emit-bc JobAction itself. 01 July 2017, 00:16:42 UTC
3a9508d [Bridging PCH] Move dependency-on-bridging-PCH to -emit-bc JobAction itself. (cherry picked from commit d4ff4537b96abbc0eb9e19e0511b5cc4cb6436cb) 30 June 2017, 22:37:05 UTC
d26c511 Reinstate crasher from SR-4737 / rdar://problem/31905232. It was failing to crash for the wrong reasons; this needs more work (and a proper reduction). (cherry picked from commit c1cb8eb9a2f65f3eb961342cd786c4714c39ccda) 30 June 2017, 21:07:25 UTC
e7095cb Merge pull request #10726 from bitjammer/upstream-index-while-building-swift-4.0-branch [index/build] Upstream indexing while building changes 30 June 2017, 21:04:03 UTC
c8a8d83 Make coding paths non-optional For the benefit of unkeyed containers, coding paths currently contain optional `CodingKey`s — unkeyed containers are allowed to report a `nil` key in a path. However, this is unhelpful for debugging purposes, or inspecting the coding path for context, since any unkeyed container simply reports `nil`, whether it’s at index 1 or 1000. Now all containers are required to report a non-optional CodingKey for their segment of the coding path, and coding paths are now exposed as `[CodingKey]`. 30 June 2017, 20:07:01 UTC
f9403cd Fixed another crasher 30 June 2017, 20:02:30 UTC
82d6f4e [Type checker] Ensure we validate type declarations before using them. Fixes a crasher regression. (cherry picked from commit dbc042261f70a0c999c6b2e4481517824f902a0d) 30 June 2017, 19:25:07 UTC
de24f95 [Name lookup] Be more tolerant of missing interface types. Fixes two crashers that regressed with the reimplementation of typo correction for nested types of dependent types, and addresses one more existing crasher. (cherry picked from commit ca117dd754dcac6505e8f88e5670e45d810294c2) 30 June 2017, 19:25:07 UTC
bcea557 [GSB] Eliminate "allow unresolved" from PotentialArchetype::getDependentType(). We don't need this now that there are no more unresolved types. (cherry picked from commit d5a55d9676f3553c4441cb12a20d4a1a820941ac) 30 June 2017, 19:25:06 UTC
830d250 [GSB] Delete the "invalid" bit on potential archetypes. We no longer set this bit anywhere, so remove it. NFC (cherry picked from commit 84e3efa228cb292437c4b02a14ab2b603d545ec1) 30 June 2017, 19:22:52 UTC
843bf68 [GSB] Rip out all of the code related to unresolved potential archetypes. All of this is dead code now that we don't use ArchetypeResolutionKind::AlwaysPartial and, therefore, cannot ever produce an unresolved potential archetype. (cherry picked from commit a24a139d10e24497a57a33aee6ed3b7fd342cb5a) 30 June 2017, 19:22:49 UTC
4296567 [GSB] Remove typo correction. NFC Remove typo correction and all notions of "renamed" potential archetypes from the generic signature builder. They're no longer used anywhere. (cherry picked from commit e3b09f3850b4188ff6281a125fb693785719c31b) 30 June 2017, 19:18:36 UTC
bc3890e [GSB] Stop creating unresolved potential archetypes; rework typo correction. The small-but-significant change to the generic signature builder is to refuse to create unresolved potential archetypes. Instead, delay any requirement that depends on such type, to be reprocessed once we've seen all of the other requirements. If the type can be resolved later, it will be; Otherwise, the type checker will complain when it sees an unresolvable type. By itself, this fixes the crash in SR-2796. Doing this by itself regresses diagnostics because typo correction in the generic signature builder no longer kicks in. Therefore, implement typo correction for these cases in the type checker proper, using its existing facilities for typo correction. The result is more consistent code with a better result. Fixes SR-2796 / rdar://problem/28544316. (cherry picked from commit ac8e8aa1b30a11962caa42bf30599534eebef956) 30 June 2017, 19:07:44 UTC
12b2c4f [index/build] Upstream indexing while building changes This patch upstreams previously AppleInternal changes for indexing while building. 30 June 2017, 19:03:10 UTC
cf854e5 Make a copy of the string before mutation 30 June 2017, 18:25:06 UTC
a715ee8 [4.0] IRGen: Sort the target-features string Function merging will not identify two otherwise equivalent if the order of the target-features list differs. rdar://33057710 (cherry picked from commit 1e794cdebf0d72b892bc4a6a2729db94c55ac652) 30 June 2017, 17:38:31 UTC
93791d5 [AST] Represent requirement signature as a flat set of requirements. The outside representation already went to a flat set of requirements; make the internal representation match so we aren't tempted to use the requirement signature as inputs to a generic signature. (cherry picked from commit 5bacc08288348a655da36a1917518bbe2155b23a) 30 June 2017, 17:11:20 UTC
9bdc3d8 [AST] Make the "requirement signature" of a protocol a flat array. Rather than pretend that the requirement signature of a protocol is a full, well-formed generic signature that one can meaningfully query, treat it as a flat set of requirements. Nearly all clients already did this, but make it official. NFC (cherry picked from commit 623d72db3c40edc7279e227027af406d859c41fb) 30 June 2017, 17:11:20 UTC
08ff5aa [Conformance access paths] Use protocol signature for building paths. When a requirement signature could not be used to construct the requirement sources in a conformance access path (due to recursive protocols), we rebuild the path based on knowledge of the protocol. Instead of using the requirement signature for this (which depends on a canonicalized generic signature that breaks our intended invariants w.r.t. unresolved nested types), use the protocol's generic signature instead. This requires one small adjustment at the root of the path, but is otherwise NFC. Eliminates the penultimate use of AlwaysPartial. (cherry picked from commit b3207c832a87810f91aef22938056899341ab619) 30 June 2017, 17:11:20 UTC
back to top