Jan Svoboda
b0f6168660
[libSyntax] Represent raw string delimiters
2019-05-15 09:15:03 +02:00
kitasuke
9155ed88e0
Use StringLiteralExpr for invalid InterpolatedStringLiteralExpr
2019-05-12 11:23:16 +09:00
kitasuke
b583fef8e2
Consolidate StringInterpolationExpr to StringLiteralExpr
2019-05-12 11:23:00 +09:00
Xi Ge
24f5ba741a
Syntax: add Syntax support for property delegate attributes
...
rdar://50056605
2019-05-02 09:50:40 -07:00
kitasuke
94815fae26
Revert "Revert "SR-10469 Unknown syntax for interpolated string literal""
...
This reverts commit 18dd11ab21 .
2019-04-30 22:35:29 +01:00
Mishal Shah
18dd11ab21
Revert "SR-10469 Unknown syntax for interpolated string literal"
2019-04-29 23:09:58 -07:00
kitasuke
27cb9c4e0c
Add test cases for multi expressions in ExpressionSegment
2019-04-27 21:05:55 +02:00
kitasuke
81ed9cc2f9
Merge branch 'master' into SR-10469-func-call-args_list
2019-04-26 06:29:02 +02:00
kitasuke
abd6dcfece
Change expression kind from Expr to FunctionCallArgumentList
2019-04-23 17:54:26 +09:00
Xi Ge
644b5ecd53
libSyntax: add support for some type. rdar://49398494
2019-04-19 17:10:53 -07:00
Nathan Hawes
1060d1af1c
Merge pull request #24073 from nathawes/inherit-default-values
...
[ParseableInterfaces] Support inheriting default arguments in module interfaces via '= super'
2019-04-18 22:21:35 -07:00
Nathan Hawes
1e1025291d
Add test for the SwiftSyntax tree produced when parsing '= super' in a module interface
2019-04-16 15:21:26 -07:00
Xi Ge
746a88aec8
Syntax: synthesize right brace tokens if they are missing from nominal type decls.
2019-04-15 16:45:26 -07:00
Xi Ge
d4ecf80cc4
Syntax: add a test for self as member to access.
2019-01-17 14:15:53 -08:00
Xi Ge
758e4a28c2
SyntaxNodes: subsume DotSelfExpr and ImplicitMemberExpr by MemberAccessExpr.
...
Per our discussion in another PR, having these three similar nodes at
the same time may unnecessarily complicate client side.
2019-01-17 14:15:53 -08:00
Xi Ge
9c42e9737b
SyntaxNodes: DotSelfExpr should have optional base expression. rdar://46935325
2019-01-16 12:02:52 -08:00
Marc Rasi
bf18697b4f
parsing, typechecking, and SILGen for #assert
...
`#assert` is a new static assertion statement that will let us write
tests for the new constant evaluation infrastructure that we are working
on. `#assert` works by lowering to a `Builtin.poundAssert` SIL
instruction. The constant evaluation infrastructure will look for these
SIL instructions, const-evaluate their conditions, and emit errors if
the conditions are non-constant or false.
This commit implements parsing, typechecking and SILGen for `#assert`.
2018-11-07 16:34:17 -08:00
Mark Lacey
5e0cb1978a
Fix libSyntax support for operator decl designated types.
2018-10-11 13:36:14 -07:00
John McCall
32c7e4bbfa
Fix libSyntax support for yields with expression lists.
2018-10-09 15:34:54 -04:00
Rintaro Ishizaki
51b7168d05
[Parse] Refactor get/set accessor parsing
...
* Use 'parseAbstractFunctionBody()' for accessors as well. This
simplifies the implementation, and makes 'parseAbstractFunctionBody()'
the single point of parsing body of every 'AbstructFunctionDecl' types.
2018-08-29 18:01:21 +09:00
Alex Hoppen
53dfecd5fc
[libSyntax] Fix a crash that happened when parsing an invalid type
2018-07-18 13:10:35 -07:00
Alex Hoppen
082086c687
[libSyntax] Fix parsing of StringLiterals with invalid interpolation segments
2018-05-22 08:52:40 -07:00
Alex Hoppen
b904194998
[libSyntax] Add support for parsing #sourceLocation directives
2018-05-22 08:52:31 -07:00
Alex Hoppen
7bbb5fa87a
[libSyntax] Fix parsing of key paths on specialised generics
2018-04-27 08:10:20 -07:00
Alex Hoppen
3fd922a9d5
[libSyntax] Accept non-standard accessor kinds
2018-04-27 08:10:20 -07:00
Xi Ge
e8c80878ed
Merge pull request #16158 from nkcsgexi/synthesize-node
...
libSyntax: add a mechanism to synthesize syntax nodes in SyntaxParsingContext.
2018-04-26 11:24:50 -07:00
Xi Ge
a1a6c19959
libSyntax: add a mechanism to synthesize syntax nodes in SyntaxParsingContext.
...
To enhance the error-recovery of syntax parsing, this patch allows the
parser to synthesize missing nodes to satisfy the requirement of a
syntax node under parsing. As proof-of-concept, we synthesize r-braces
for function body to avoid regressing a function decl to an unknown
decl.
2018-04-26 10:48:57 -07:00
Alex Hoppen
94b8a3545b
[libSyntax] Fix parsing for KeyPath
2018-04-25 13:30:31 -07:00
Alex Hoppen
28973f23b6
[libSyntax] Fix parsing of member declarations with trailing semicolon
2018-04-24 14:19:24 -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
Alex Hoppen
c52f4a8131
[libSyntax] Fix parsing of operators passed to higher order functions
2018-04-23 12:23:27 -07:00
Alex Hoppen
75406c895c
[libSyntax] Enable parsing of class restrictions for protocols
2018-04-23 12:23:27 -07:00
Rintaro Ishizaki
338cedd6d5
[Syntax] Parse '#selector' expression syntax
2018-04-12 13:56:04 +09:00
Rintaro Ishizaki
eb69497d64
[Syntax] Parse 'operator' declaration syntax
2018-04-12 13:55:55 +09:00
Rintaro Ishizaki
15a04fc45c
Merge pull request #15873 from rintaro/syntax-precedencegroup
...
[Syntax] Parse 'precedencegroup' declaration syntax
2018-04-12 10:15:27 +09:00
Rintaro Ishizaki
07fd8b8a4b
[Parse] Handle edge case of '@unknown' for switch case
...
* Previously, hit assertion if '@unknown' has argument clause
* Diagnose multiple '@unknown' for single 'case'
2018-04-12 01:27:40 +09:00
Rintaro Ishizaki
b457500389
[Syntax] Parse 'precedencegroup' declaration syntax
2018-04-11 23:21:54 +09:00
Jordan Rose
701975ad1d
Add parsing support for @unknown (SE-0192)
...
This is our first statement attribute, made more complicated by the
fact that a 'case'/'default' isn't really a normal statement. I've
chosen /not/ to implement a general statement attribute logic like we
have for types and decls at this time, but I did get the compiler
parsing arbitrary attributes before 'case' and 'default'. As a bonus,
we now treat all cases within functions as being switch-like rather
than enum-like, which is better for recovery when not in a switch.
2018-04-05 16:35:14 -07:00
Rintaro Ishizaki
66d400eb1b
[Syntax] Parse 'enum' and 'case' declaration ( #15704 )
2018-04-04 08:38:08 +09:00
Rintaro Ishizaki
18b28b9184
[Parse] Factor out declaration modifier list parsing ( #15702 )
2018-04-03 19:58:57 +09:00
Rintaro Ishizaki
fc3cbcda88
[Syntax] Redesign IfConfigDecl syntax
2018-04-03 01:31:33 +09:00
Rintaro Ishizaki
4488e99a04
[Syntax] Parse 'switch' statement
2018-03-28 00:30:21 +09:00
Xi Ge
6a99b01961
[test] Avoid creating new tmp directory for syntax round-trip testing. rdar://38567449 ( #15320 )
2018-03-17 12:08:55 -07:00
Xi Ge
4c3d3b4294
[test] libSyntax: make sure we can handle emoji. ( #15297 )
2018-03-16 15:24:59 -07:00
Dexin Li
e0f8b27117
[Syntax]Add a deserializer that convert json to libSyntax tree ( #15203 )
2018-03-16 15:22:04 -07:00
Harlan
aa1059c9a3
[Syntax] Parse WhileStmtSyntax nodes ( #15186 )
2018-03-12 17:50:07 -04:00
Rintaro Ishizaki
1eedcb7682
[Syntax] Parse '->' in sequence expression
2018-02-06 15:06:00 +09:00
Rintaro Ishizaki
e6307708d1
[Syntax] Parse 'type(of: <expr>)' syntax
...
In libSyntax, this is just a FunctionCallExpr.
2018-02-06 15:06:00 +09:00
Rintaro Ishizaki
5dc6b78457
[Syntax] Parse generic specialize expression
2018-02-06 15:05:59 +09:00
Rintaro Ishizaki
6ad01da279
[Syntax] Support parsing empty array expression.
2018-02-06 13:03:41 +09:00