Commit Graph

783 Commits

Author SHA1 Message Date
Hamish Knight
042ccdda01 Merge pull request #68344 from hamishknight/do-it 2023-10-10 10:26:12 +01:00
Hamish Knight
2eb90c370a Merge pull request #68860 from ChiduAnush/changeRawSyntaxToBumpPtrAllocator 2023-10-09 20:50:42 +01:00
Hamish Knight
33f94bc874 Introduce do expressions 2023-10-06 11:17:48 +01:00
Rintaro Ishizaki
7ac5d65479 [ASTGen] Use standard headers
For whatever reason, using standard headers in modules imported from
Swift code (i.e. depending on Darwin overlay) is no longer an issue.

rdar://115438609
2023-10-04 15:12:17 -07:00
saehejkang
a4da2760be [ASTGen]: Make ASTGenVisitor not conform to SyntaxTransformVisitor 2023-10-03 22:28:23 -05:00
chidambaram
8b50a0d9c6 ASTGen: Expose BumpPtrAllocator as @_spi(BumpPtrAllocator) 2023-10-01 13:46:46 +05:30
Doug Gregor
e51faf20ab Adjust to typed-throws syntax node renames 2023-09-29 17:30:12 -07:00
Doug Gregor
1d976a3754 [Typed throws] Map the experimental feature flag over to the new parser's flag 2023-09-29 14:18:10 -07:00
Doug Gregor
ef642098f2 [Typed throws] Parsing and AST representation for typed errors
Parse typed throw specifiers as `throws(X)` in every place where there
are effects specified, and record the resulting thrown error type in
the AST except the type system. This includes:
* `FunctionTypeRepr`, for the parsed representation of types
* `AbstractFunctionDecl`, for various function-like declarations
* `ClosureExpr`, for closures
* `ArrowExpr`, for parsing of types within expression context

This also introduces some serialization logic for the thrown error
type of function-like declarations, along with an API to extract the
thrown interface type from one of those declarations, although right
now it will either be `Error` or empty.
2023-09-29 10:51:51 -07:00
Rintaro Ishizaki
8dbde04c61 Merge pull request #68408 from rintaro/fetch-content
[CMake] Replace early swift-syntax with FetchContent
2023-09-28 11:22:10 -07:00
Alex Hoppen
8dec9addfc [ASTGen] Relax assertion on BridgedSourceLoc initializer
We do allow `SourceLoc` to point to the address right after the buffer ends to point to the end of a file.
2023-09-26 15:46:54 -07:00
Alex Hoppen
bd3a7551f8 Merge pull request #68643 from saehejkang/bridged-source-loc-assert-pos
[ASTGen]: Assert that the position is within buffer bounds for BridgedSourceLoc
2023-09-25 21:25:29 -07:00
saehejkang
a3d59b360c [ASTGen]: fix force-unwrap for buffer.baseAddress 2023-09-22 21:25:55 -05:00
saehejkang
2aac5d90c4 [ASTGen]: force unwrap buffer 2023-09-22 20:31:22 -05:00
saehejkang
4b4f97796a [ASTGen]: precondition that position is within buffer 2023-09-20 19:30:44 -05:00
saehejkang
df9ae88bd8 [ASTGen]: assert that position is within buffer bounds 2023-09-19 18:08:30 -05:00
Minhyuk Kim
8169658621 [ASTGen] Refactor bridgedSourceLoc and move to a function of SyntaxProtocol 2023-09-20 00:05:42 +09:00
Ben Barham
041691184c [CMake] Replace early swift-syntax with FetchContent
Use FetchContent to include swift-syntax directly in swift. This can be
thought of as an `add_subdirectory` for a directory outside the root.

The default build directory will be `_deps/swiftsyntax-subbuild/`, though
the modules and shared libraries will be built in `lib/swift/host` by
passing down `SWIFT_HOST_LIBRARIES_DEST_DIR` to avoid copying them as we
were doing previously.
2023-09-18 14:44:10 -07:00
Anthony Latsis
ae83632d94 [NFC] ASTGen: Add Swift names to bridging functions for decls 2023-09-15 09:11:41 +03:00
Anthony Latsis
a1ba72c520 ASTGen: Translate precedence group declarations 2023-09-12 20:37:51 +03:00
Anthony Latsis
a8db87a3fa ASTGen: Translate import declarations 2023-09-12 20:37:51 +03:00
Anthony Latsis
5e46243356 ASTGen: Translate initializer declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
58ce5d10cb ASTGen: Translate deinitializer declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
96f13f51fc ASTGen: Translate operator declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
de155c9783 ASTGen: Translate extension declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
76e2cdc45a ASTGen: Translate enum element payloads 2023-09-12 20:37:50 +03:00
Anthony Latsis
fa1c9fd506 ASTGen: Translate enum case declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
4a5325a25a ASTGen: Translate enumeration declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
b4b4a58688 ASTGen: Translate actor declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
ca8f911b62 ASTGen: Translate generic where clauses 2023-09-12 20:37:50 +03:00
Anthony Latsis
b6be6da277 ASTGen: Translate associated type declarations
Plus tweak `DefaultDefinitionTypeRequest` caching to support querying the
cached type when dumping. This fixes a crash where type computation is
triggered in the dumper before import resolution in `-dump-parse` mode.
2023-09-12 20:37:50 +03:00
Anthony Latsis
da427adaa6 ASTGen: Translate inheritance clauses 2023-09-12 20:37:50 +03:00
Anthony Latsis
345a7f8aad ASTGen: Translate protocol declarations 2023-09-12 20:37:50 +03:00
Anthony Latsis
a49bf1986a ASTGen: Translate class generic parameter clauses 2023-09-12 20:37:50 +03:00
Anthony Latsis
7b25bfcab7 ASTGen: Translate function generic parameter clauses 2023-09-12 20:37:50 +03:00
Anthony Latsis
6293332cba ASTGen: Translate default arguments 2023-09-12 20:37:50 +03:00
Anthony Latsis
808ab1b064 [NFC] ASTGen: Extract ParamDecl and ParameterList translation into a new file 2023-09-12 20:37:50 +03:00
Anthony Latsis
034a39a00c ASTGen: Set brace locations for iterable declaration contexts 2023-09-12 20:37:50 +03:00
Anthony Latsis
1291333fde ASTGen: Cache parsed IterableDeclContext members using the request evaluator
...instead of adding them to the iterable context lest they be re-parsed using
the legacy parser and later re-added through `IterableDeclContext::loadAllMembers`.
2023-09-12 20:37:50 +03:00
Anthony Latsis
a141fba7fc [NFC] ASTGen: Don't unnecessarily bridge TypeAliasDecl::setUnderlyingTypeRepr 2023-09-12 20:37:50 +03:00
Anthony Latsis
4b314a7c9a ASTGen: Fix enough source locations that we can start diffing AST dumps
... and tidy up adjacent code along the way.
2023-09-12 20:37:50 +03:00
Anthony Latsis
4b2cdedc48 ASTGen: Start diagnosing instances of an invalid syntax tree 2023-09-12 20:37:50 +03:00
Anthony Latsis
e72b421fa4 [NFC] ASTGen: Rename "Diagnostics.swift" → "DiagnosticsBridge.swift"
This file deals with emitting SwiftSyntax diagnostics via the C++ engine and
rendering C++ diagnostics via SwiftSyntax rather than ASTGen diagnostics.
2023-09-12 20:37:50 +03:00
Anthony Latsis
cd55d760ed ASTGen: Skip leading trivia when forming bridged source locations 2023-09-12 20:37:49 +03:00
Anthony Latsis
ea164cd0a0 [NFC] ASTGen: Optimize and flatten the transform + withBridgedArrayRef pattern via bump allocation
To encourage usage of  lazy transformations, define `bridgedArrayRef`
on `LazyCollectionProtocol`.
2023-09-12 20:33:39 +03:00
Anthony Latsis
92c1bdc219 [NFC] ASTGen: Define visit(_:) overloads that take an optional to achieve consistent self.visit recursion pattern 2023-09-12 13:33:47 +03:00
Anthony Latsis
59c2623aba [NFC] ASTGen: Extract TokenSyntaxBridgedIdentifier mapping into a method 2023-09-12 13:33:47 +03:00
Anthony Latsis
3e0c368022 [NFC] ASTGen: Rename "Misc.swift" → "Bridge.swift" 2023-09-12 13:33:47 +03:00
Anthony Latsis
af6bfe9b9b [NFC] ASTGen: Move visit methods from "Misc.swift" to "ASTGen.swift"
Also, delete `func visit(_ node: LabeledExprSyntax)` as unused. We directly
visit its children instead, since it’s more than an expression.
2023-09-12 13:33:46 +03:00
Anthony Latsis
655e4c19a9 [NFC] ASTGen: Remove unused SwiftParser imports 2023-09-12 13:33:46 +03:00