Commit Graph

15 Commits

Author SHA1 Message Date
Slava Pestov
e765d9d73b Sema: Check reference to implicitly-generated super.init() call from inlinable context
Fixes <https://bugs.swift.org/browse/SR-10940>.
2019-06-17 21:56:26 -04:00
Ben Cohen
e9d4687e31 De-underscore @frozen, apply it to structs (#24185)
* De-underscore @frozen for enums

* Add @frozen for structs, deprecate @_fixed_layout for them

* Switch usage from _fixed_layout to frozen
2019-05-30 17:55:37 -07:00
Slava Pestov
1159af50d9 Rename -enable-resilience to -enable-library-evolution and make it a driver flag
Fixes <rdar://problem/47679085>.
2019-03-14 22:24:26 -04:00
Harlan Haskins
1abeeb8b92 [Sema] Diagnose internal(set) from @inlinable functions
This patch mainly consolidates the functions used to check accessors vs.
other decls, and makes sure we check setter access as well as regular
decl access.

rdar://45217648
2018-12-07 12:46:19 -08:00
Harlan Haskins
d30a3da32a [Sema] Non-requirement protocol members should inherit @usableFromInline
Previously, members of protocols that were not protocol requirements,
like accessors and typealiases, did not inherit @usableFromInline from
the parent protocol. Change this so they do.
2018-12-07 12:45:32 -08:00
Harlan Haskins
4adc80a8cf [test] Update @inlinable test to Swift 5
Also add a compatibility test for Swift 4.2 behavior
2018-12-07 12:42:05 -08:00
Slava Pestov
3e864b26aa AST: @inline(__always) no longer implies @inlinable
Fixes <rdar://problem/44657000>.
2018-11-12 21:00:15 -05:00
Harlan Haskins
5f9ff021d4 [Sema] Allow non-public static property initializers in @_fixed_layout types
Static properties are not subject to the same restrictions as properties
whose initializers are exposed to clients in @_fixed_layout types.

rdar://45080912
2018-10-08 18:02:30 -07:00
Jordan Rose
6290d9be60 Introduce DescriptiveDeclKind::Property (#18183)
...and collapse StaticVar/ClassVar and StaticLet/ClassLet into
StaticProperty/ClassProperty.

"var" and "let" aren't great nouns to use in diagnostics to begin with,
especially alongside semantic terms like "instance method". Focus on
the type vs. non-type aspect instead with "property", which better
matches how people talk about member vars (and lets) anyway.
2018-07-30 09:23:59 -07:00
Slava Pestov
4531d1c0ba Sema: Check availability of key path components
Fixes <https://bugs.swift.org/browse/SR-7406> / <rdar://problem/39319212>.
2018-07-05 17:44:46 -07:00
Slava Pestov
0a60619b70 Sema: Declaration signatures should respect @usableFromInline
Previously we made sure that inlinable function bodies only
reference @usableFromInline or public declarations, but we
also have to make sure that @usableFromInline declarations
only reference other declarations that are at least as
visible.

Otherwise, you could, for example, define a @usableFromInline
typealias which referenced an internal type, and then
reference the typealias from a @usableFromInline function body.
2018-06-26 00:31:32 -07:00
Slava Pestov
cfdcbc7455 Sema: Only warn about @inlinable implying @usableFromInline in -swift-version 4.2
Another SwiftNIO request.

Fixes <https://bugs.swift.org/browse/SR-7578>.
2018-06-18 15:47:27 -07:00
Slava Pestov
b4e145dc34 SE-0193: @inlinable implies @usableFromInline 2018-04-06 00:02:29 -07:00
Slava Pestov
f250bdb44c Sema: Fix inheritance of @usableFromInline
If the base class initializer was '@inlinable public' and the
derived class was '@usableFromInline internal', the synthesized
initializer was '@inlinable internal', which was an error.
2018-04-04 00:07:50 -07:00
Slava Pestov
e1f50b2d36 SE-0193: Rename @_inlineable to @inlinable, @_versioned to @usableFromInline 2018-03-30 21:55:30 -07:00