Alex Hoppen
73cece2803
[libSyntax] Make SyntaxFactory methods instance methods
...
This saves us from passing in the SyntaxArena every time a new node is
created.
2021-03-03 11:02:55 +01:00
Alex Hoppen
03373c9337
Merge pull request #36236 from ahoppen/pr/re-enable-unknown-syntax-tests
...
[libSyntax] Re-enable the UnknownSyntaxTests
2021-03-03 08:28:17 +01:00
Alex Hoppen
7be84c115c
[libSyntax] Adjust SyntaxTests that were potentially creating SyntaxArena reference cycles
2021-03-02 22:42:45 +01:00
Alex Hoppen
3927c7690b
[libSyntax] Re-enable the UnknownSyntaxTests
...
These appear to have been commented out for years for no particular
reason.
2021-03-02 18:24:51 +01:00
Alex Hoppen
9ff88b2839
[libSyntax] Fix SwiftSyntaxTests broken due to change SyntaxFactory API
...
This fixes the SwiftSyntaxTests that were broken because the
SyntaxFactory API now requires an Arena in which the nodes should be
created.
2021-03-01 09:43:54 +01:00
Alex Hoppen
db3a520bc7
[libSyntax] Adjust tests for raw trivia being stored in RawSyntax
2021-02-05 08:15:54 +01:00
Alex Hoppen
8a6b8b8195
[libSyntax] Fix test failures in SwiftSyntaxTests
2021-01-29 13:08:12 +01:00
Alex Hoppen
8bb1167e21
[libSyntax] Restructure RawSyntax to more closely resemble the SwiftSyntax implementation
2021-01-29 13:08:12 +01:00
Doug Gregor
6a5522f09a
[Syntax] Fix type syntax tests for 'async'.
2020-08-06 14:04:25 -07:00
Doug Gregor
3cfe390a51
[Concurrency] Add Syntax support for 'async'.
...
Add 'async' to the syntax tree for types, function declarations, and
the "arrow" expression.
2020-07-28 16:41:17 -07:00
Rintaro Ishizaki
2e094a556d
[Syntax] Update for braceless multiple trailing closure syntax
2020-05-06 01:56:41 -04:00
Rintaro Ishizaki
60341baf62
[SyntaxParse] Refactor generic requirement syntax structure
...
Re-apply a part of 0569cbfb28 after
reverting ASTGen changes. This is still an improvement.
2019-10-21 15:16:56 -07:00
Rintaro Ishizaki
8768832f24
Revert "Merge pull request #27281 from rintaro/reapply-syntaxparse-genericparam"
...
This reverts commit 5d3e8d6c83 , reversing
changes made to 27e881d97e .
2019-10-14 12:46:31 -07:00
Rintaro Ishizaki
f42f60f233
[Syntax] Consolidate 'TupleElement' and 'FunctionCallArgument' kinds
...
into 'TupleExprElement'. They had exact the same layout.
2019-10-07 20:52:11 -07:00
Rintaro Ishizaki
0569cbfb28
Revert "Revert "[SyntaxParse] Parse generic parameter clause and generic where clause""
...
This reverts commit 1584e87aa7 .
2019-09-20 15:26:04 -07:00
Rintaro Ishizaki
1584e87aa7
Revert "[SyntaxParse] Parse generic parameter clause and generic where clause"
2019-09-20 14:02:53 -07:00
Rintaro Ishizaki
f919b2ddd8
[SyntaxParse] Parse generic parameter clause and generic where clause
2019-09-19 23:09:58 -07:00
Rintaro Ishizaki
8edea315cd
[Syntax] Abolish 'backtick' trivia
...
- Stop producing 'backtick' trivia for escaping identifier token. '`'s
are now parts of the token text
- Adjust and simplify C++ libSyntax APIs
- Add 'is_deprecated' property to Trivia.py to attribute SwiftSyntax
APIs
rdar://problem/54810608
2019-09-09 11:49:25 -07:00
Argyrios Kyrtzidis
3612cd3d72
[utils/gyb_syntax_support] Add collection_element_name for when specifying a Child
...
This is useful to provide `add<ELEMENT_NAME>` APIs for SwiftSyntax that are better named
and without having name conflicts.
2019-04-23 18:14:39 -07:00
Xi Ge
ddd643fe89
syntax: perform rename to avoid name collision in syntax builder. NFC
2019-04-20 16:04:41 -07:00
Xi Ge
1015a6024d
Syntax: use child name instead of type name for gyb-generated functions
...
ParsedSyntaxBuilder has a convenient function to add member to a syntax-collection
child. The function name uses the type name of the collection's members,
which can lead to name collision. This patch renames it.
2019-04-19 18:16:13 -07:00
bannzai
f425c39e60
Add FunctionParameterWithEllipsis test case
2019-01-30 02:26:33 +09:00
Saleem Abdulrasool
e07c00c652
Syntax: correct implementation for removing
...
`llvm::ArrayRef<T>` does not define `erase`. However, since the intent
here is to remove the last n elements, we can use `drop_back` instead.
Furthermore, replace the direct use of `Layout` with `getLayout()`.
This was identified by gcc 8.2.
2018-10-29 11:39:31 -07:00
Alex Hoppen
705f5b79a2
[libSyntax] Rename getAbsolutePosition-related methods for more clarity
2018-07-19 09:15:53 -07:00
Alex Hoppen
1b3baf908f
[incrParse] Add error nodes to the end of a CodeBlockItem
...
Creating a new CodeBlockItem meant that when doing an edit in the error
nodes, the prefix gets reused and thus the code is parsed as invalid
although it is not.
2018-05-22 09:07:55 -07:00
Xi Ge
5a8053e7ef
libSyntax: add getAbsoluteEndPosition() method to syntax nodes.
...
This implementation uses sibling's absolute start position to help
populate caches while getting the end position.
2018-05-01 12:06:41 -07:00
Alex Hoppen
3e9ae802c2
[libSyntax] Make parsing of attribute arguments more structured
...
This also fixes several issues where attribute arguments could not be
parsed as a TokenList since some of its arguments already had structure
and were not tokens
2018-04-24 13:18:15 -07:00
Rintaro Ishizaki
66d400eb1b
[Syntax] Parse 'enum' and 'case' declaration ( #15704 )
2018-04-04 08:38:08 +09:00
swift-ci
8d3b02d58f
Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition
2018-02-07 17:37:55 -08:00
Rintaro Ishizaki
6c0af2a24f
[Syntax] Introduce CodeBlockItem ( #14458 )
...
CodeBlockItem represents Decl, Stmt or Expr that optionally followed by
semi-colon.
SourceFile syntax holds a list of CodeBlockItem.
2018-02-08 10:31:01 +09:00
swift-ci
d3df4417c3
Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition
2018-02-05 18:57:56 -08:00
Rintaro Ishizaki
ba58a2994d
[Syntax] Parse associatedtype declaration
...
Also, added generic where clause to typealias declaration.
2018-02-06 09:33:12 +09:00
swift-ci
bfaad1d49b
Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition
2018-02-01 18:18:09 -08:00
Rintaro Ishizaki
057254dbc1
[Syntax] Bump allocate and cache/reuse RawSyntax
...
Introduced SyntaxArena for managing memory and cache.
SyntaxArena holds BumpPtrAllocator as a allocation storage.
RawSyntax is now able to be constructed with normal heap allocation, or
by SyntaxArena. RawSyntax has ManualMemory flag which indicates it's managed by
SyntaxArena. If the flag is true, its Retain()/Release() is no-op thus it's
never destructed by IntrusiveRefCntPtr.
This speedups the memory allocation for RawSyntax.
Also, in Syntax parsing, "token" RawSyntax is reused if:
a) It's not string literal with >16 length; and
b) It doesn't contain random text trivia (e.g. comment).
This reduces the overall allocation cost.
2018-02-02 01:27:06 +09:00
swift-ci
19aa5ea6d2
Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition
2018-01-22 14:51:20 -08:00
Rintaro Ishizaki
98fc073e2e
[Syntax] Don't rebuild Syntax with RawSyntax in SyntaxVisitor ( #14057 )
...
We don't guarantee RawSyntax nodes as unique object in the tree, while
we do that for SyntaxData. We shouldn't recreate SyntaxData once it was
built.
2018-01-22 14:24:20 -08:00
swift-ci
85cef29e2b
Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition
2018-01-17 23:24:08 -08:00
Rintaro Ishizaki
0780c529c4
[Syntax] Unify RawSyntax and RawTokenSyntax using union and TrailingObjects
...
It better matches with SwiftSyntax model.
Using TrailingObjects reduces the number of heap allocation which
gains 18% performance improvement.
2018-01-18 14:49:46 +09:00
swift-ci
f6817ef944
Merge remote-tracking branch 'origin/master' into master-next
2017-12-25 05:49:31 -08:00
Rintaro Ishizaki
5d65b2f510
[Syntax] Parse several suffix expression nodes
...
* FunctionCallExpr
* SubscriptExpr
* OptionalChainingExpr
* ForcedValueExpr
* PostfixUnaryExpr
2017-12-25 17:21:05 +09:00
swift-ci
734f1b8fb1
Merge remote-tracking branch 'origin/master' into master-next
2017-12-22 00:09:03 -08:00
omochimetaru
9b7f2502c4
[Syntax] line number counting for CRLF
2017-12-22 03:46:12 +09:00
swift-ci
ab66b86518
Merge remote-tracking branch 'origin/master' into master-next
2017-12-18 16:09:16 -08:00
Xi Ge
fe1a4ca0d2
libSyntax: create libSyntax node for var decl accessors.
2017-12-18 15:16:14 -08:00
swift-ci
bb16a84204
Merge remote-tracking branch 'origin/master' into master-next
2017-12-15 11:09:35 -08:00
Rintaro Ishizaki
53b2e0fe14
[Syntax] Parse composition type node
2017-12-15 10:52:10 -08:00
swift-ci
e3e6dc9c79
Merge remote-tracking branch 'origin/master' into master-next
2017-12-14 17:49:31 -08:00
Xi Ge
b4b638651d
libSyntax: create syntax node for typealias declarations. ( #13450 )
2017-12-14 17:44:54 -08:00
swift-ci
6349dc9aa0
Merge remote-tracking branch 'origin/master' into master-next
2017-12-14 08:29:34 -08:00
Rintaro Ishizaki
e616b2ad37
[Syntax] Use initializer clause syntax node for function parameter ( #13430 )
2017-12-14 08:12:10 -08:00