Slava Pestov
9dfb6ea067
Merge pull request #61675 from slavapestov/element-generic-environment
...
AST: Opened element generic environments
2022-10-22 00:58:26 -04:00
Slava Pestov
68514b10b5
AST: Introduce ElementArchetypeType
2022-10-21 21:55:35 -04:00
Richard Wei
56e7cce809
[Macros] Parse MacroExpansionExpr and MacroExpansionDecl
...
Introduce `MacroExpansionExpr` and `MacroExpansionDecl` and plumb it through. Parse them in roughly the same way we parse `ObjectLiteralExpr`.
The syntax is gated under `-enable-experimental-feature Macros`.
2022-10-21 01:50:35 -07:00
Slava Pestov
da8ae1d36d
Sema: Remove PackExpr
2022-10-16 21:37:25 -04:00
Slava Pestov
b3c16ea2b4
AST: Tweak printing of PackType and PackExpansionType
2022-10-16 21:37:24 -04:00
Holly Borla
9bb837a241
[AST] Rename SequenceArchetype to PackArchetype.
2022-10-10 16:25:26 -07:00
Holly Borla
67fb143f0e
[AST] Remove ReifyPackExpr.
2022-10-10 16:25:26 -07:00
Holly Borla
19688cc2b1
[AST] Add the skeleton for PackExpansionExpr.
2022-10-07 20:13:18 -07:00
Holly Borla
38a2c8218b
[Requirement] Rename RequirementKind::SameCount to SameShape.
2022-10-06 20:48:40 -07:00
Hamish Knight
bca941b152
[AST] NFC: Rename IfExpr -> TernaryExpr
...
This matches what we call it in SwiftSyntax, and
is just generally clearer.
2022-09-28 10:33:31 +01:00
Allan Shortlidge
06595f6597
Merge pull request #60852 from tshortli/parse-has-symbol
...
AST: Parse `#_hasSymbol`
2022-09-12 09:32:52 -07:00
Slava Pestov
c1b8690401
AST: Introduce special Builtin.TheTupleType singleton
2022-09-10 00:26:42 -04:00
Allan Shortlidge
f5f1d3c028
AST: Parse #_hasSymbol
...
Introduce the compiler directive `#_hasSymbol` which will be used to detect whether weakly linked symbols are present at runtime. It is intended for use in combination with `@_weakLinked import` or `-weak-link-at-target`.
```
if #_hasSymbol(foo(_:)) {
foo(42)
}
```
Parsing only; SILGen is coming in a later commit.
Resolves rdar://99342017
2022-09-08 17:15:29 -07:00
Slava Pestov
79ed990728
AST: Replace TupleTypeRepr's ellipsis with PackExpansionTypeRepr
2022-09-07 12:35:54 -04:00
Slava Pestov
db4b4c9fa2
AST: Introduce PackExpansionTypeRepr
2022-09-07 12:35:53 -04:00
nate-chandler
2efc0f6857
Merge pull request #60940 from nate-chandler/eager_move_self
...
Self parameters can be @_noImplicitCopy or @_eagerMove.
2022-09-07 06:12:53 -07:00
Nate Chandler
158c782960
[AST] Promote isNoImplicitCopy to Decl.
...
Move the predicate up from ParamDecl to Decl and use it everywhere in
place of hasAttribute<NoImplicitCopyAttr>.
2022-09-02 16:12:17 -07:00
swift-ci
a66951aa3d
Merge pull request #60521 from kavon/preconcurrency-var-access
...
Add missing function conversion for member access to preconcurrency vardecl.
2022-08-30 00:58:49 -07:00
Kavon Farvardin
6c24bc57cb
[AST][SILGen] model ABI-safe casts of LValues
...
We needed a way to describe an ABI-safe cast of an address
representing an LValue to implement `@preconcurrency` and
its injection of casts during accesses of members.
This new AST node, `ABISafeConversionExpr` models what is
essentially an `unchecked_addr_cast` in SIL when accessing
the LVAlue.
As of now I simply implemented it and the verification of
the node for the concurrency needs to ensure that it's not
misused by accident. If it finds use outside of that,
feel free to update the verifier.
2022-08-29 20:58:26 -07:00
Slava Pestov
0f26d02fb1
AST: ProtocolConformanceRef can store a pack conformance
2022-08-23 21:07:30 -04:00
Slava Pestov
6549e0e168
AST: Introduce representation for pack conformances
2022-08-23 21:07:30 -04:00
Slava Pestov
3992b18e0b
AST: Move some code from ASTPrinter.cpp to ASTDumper.cpp
2022-08-23 11:12:01 -04:00
Slava Pestov
ae37591c06
AST: Add a count type field to PackExpansionType
...
Even if we can't spell them in source, we want to model expansions where
the pattern does not depend on any pack type parameters, eg
func f<C...: Collection>(_ c: C...) {
let x = (c.count...)
}
Here, the type of 'x' is notionally 'Int * C.count'.
2022-08-23 11:12:00 -04:00
Nate Chandler
b3ae13ddbe
[Sema] Added _eagerMove and _lexical attributes.
...
The new attributes affect how the lifetimes of values may be shortened.
2022-08-21 21:44:53 -07:00
Michael Gottesman
c10c0f6285
[move-function] Add a new context sensitive move expr.
...
It doesn't do anything yet.
2022-08-08 12:50:41 -07:00
Pavel Yaskevich
3e65a7cab0
Merge pull request #60065 from xedin/result-builder-ast-transform-under-flag
...
[TypeChecker] Implement result builder transform via AST modification under a flag
2022-08-02 16:22:01 -07:00
Pavel Yaskevich
3167182871
[AST] Add TypeJoin expression
...
This expression represents a variable and a set of expressions
that are type-checked together to form a type of the variable.
2022-08-02 11:03:27 -07:00
Hamish Knight
9da53193da
[AST] Remove ParameterTypeFlags from ParenType and TupleType
...
The last clients that relied on stashing parameter
type flags on these types are now gone.
2022-08-02 13:56:32 +01:00
Pavel Yaskevich
ceae9fdb5d
Merge pull request #59854 from amritpan/improve-ast-printing
...
[ConstraintSystem] Improve ast printing in the type inference algorithm debug output
2022-07-04 00:41:07 -07:00
Michael Gottesman
198b974622
Merge pull request #59859 from gottesmm/pr-276c4e4220a25490659a285e8b94a36bd28ffede
...
[no-implicit-copy] Rename SILMoveOnlyType -> SILMoveOnlyWrappedType.
2022-07-01 23:17:43 -07:00
Amritpan Kaur
482db15e3a
[ASTDumper] Consolidate series of closing parens into single line at end of AST in Initial Constraints and in the fully Type-checked expression.
2022-07-01 21:07:29 -07:00
Michael Gottesman
8f3fe63fed
[no-implicit-copy] Rename SILMoveOnlyType -> SILMoveOnlyWrappedType.
...
Since I am beginning to prepare for adding real move only types to the language,
I am renaming everything that has to do with copyable types "move only wrapped"
values instead of move only. The hope is this reduces/prevents any confusion in
between the two.
2022-07-01 17:26:13 -07:00
Amritpan Kaur
6518791d6f
[ASTDumper] Remove list of decl references in Initial Constraints to make AST easier to read.
2022-06-30 14:50:16 -07:00
Pavel Yaskevich
b2b1efd268
[Distributed] Decl: Add a new distributed-thunk bit
...
The flag is used to distinguish between regular functions/accessors
and synthesized distributed thunks.
2022-06-29 14:49:10 -07:00
Pavel Yaskevich
fce3b856e3
[AST] Add new member access semantics - DistributedThunk
...
`DistributedThunk` is to be used while accessing 'distributed'
computed property outside of its actor context.
2022-06-29 14:49:10 -07:00
Konrad `ktoso` Malawski
febfef97d4
[Distributed] Skeleton implementation of distributed computed properties
2022-06-29 14:49:04 -07:00
Konrad `ktoso` Malawski
6a2778645f
Revert "Merge pull request #59481 from xedin/distributed-computed-properties"
...
This reverts commit 8125a85a8f , reversing
changes made to 728971c5b7 .
2022-06-25 08:49:00 +09:00
Pavel Yaskevich
fa2e64c1fd
[Distributed] Sema: Add a new distributed-thunk attribute
...
The attribute comes handy during solution application to
determine whether the call is using a distributed thunk.
2022-06-17 12:35:54 -07:00
Pavel Yaskevich
50a82e2868
[AST] Remove shouldApplyLookDistributedThunk flag from LookupExpr
...
The underlying mechanism has changed so the flag is no longer required.
2022-06-17 12:12:16 -07:00
Konrad `ktoso` Malawski
079bbcf517
wip
2022-06-17 12:12:16 -07:00
Michael Gottesman
c66061a783
[moveOnly] Add a new SIL specific AST type called SILMoveOnly.
...
It can only be used in SIL contexts to express that a wrapped type is
MoveOnly.
2022-06-03 11:27:16 -07:00
Pavel Yaskevich
644a720ce6
Merge pull request #59003 from xedin/rdar-92177656
...
[TypeChecker] Rework type-checking of `for-in` statements
2022-06-02 14:58:56 -07:00
Anthony Latsis
a9fb330a21
Fix a crash in the ASTDumper
2022-06-01 00:13:40 +03:00
Pavel Yaskevich
b7860ea055
[TypeChecker] Split for-in sequence into parsed and type-checked versions
2022-05-30 23:17:41 -07:00
Pavel Yaskevich
86165291aa
[TypeChecker] Change the way for-in statement in type-checked
...
Instead of asking SILGen to build calls to `makeIterator` and
`$generator.next()`, let's synthesize and type-check them
together with the rest of for-in preamble. This greatly simplifies
interaction between Sema and SILGen for for-in statements.
2022-05-30 23:17:41 -07:00
Luciano Almeida
e8a8ecd92e
[ASTDumper] Print async let for any_pattern that has an async let bit set e.g. let _: <type> = <expr>
2022-04-17 14:06:39 -03:00
Konrad `ktoso` Malawski
edd5880a59
[Distributed] SerializationReq must be associated type on DA
2022-04-13 21:52:15 +09:00
Alex Hoppen
0ded798ceb
Merge pull request #42006 from ahoppen/pr/prepare-for-migrate-postfixexprparen
...
[CodeCompletion][Sema] Multiple improvements to prepare for migration of PostfixExprParen to solver-based
2022-04-03 16:43:36 +02:00
Anthony Latsis
4c2e88b207
Merge pull request #41849 from AnthonyLatsis/dyn_unbound_ref
...
CS: Handle unbound references to @objc optional methods
2022-03-31 04:01:20 +03:00
Pavel Yaskevich
a5a50a3658
[AST] NFC: Rename underlying type accessors of OpaqueTypeDecl
...
Adds a `Unique` component to the accessor names to draw the
distinction between unique and conditionally available substitutions.
2022-03-28 16:22:08 -07:00