Commit Graph

11 Commits

Author SHA1 Message Date
Chris Lattner
82956ede54 fix a QoI regression I introduced in r26224. If an initializer expr in a var/let decl
is invalid and produces a ParseError, recovery by producing an AST with an ErrorExpr in it
instead of dropping the initializer on the floor.  This silences downstream errors about
"must have an initializer" sorts of stuff.



Swift SVN r26405
2015-03-22 05:08:26 +00:00
Chris Lattner
59c22383fb Rework PatternBindingDecl to maintain a list of pattern/initexpr pairs inside of it.
Previously, a multi-pattern var/let decl like:
  var x = 4, y = 17

would produce two pattern binding decls (one for x=4 one for y=17).  This is convenient
in some ways, but is bad for source reproducibility from the ASTs (see, e.g. the improvements
in test/IDE/structure.swift and test/decl/inherit/initializer.swift).

The hardest part of this change was to get parseDeclVar to set up the AST in a way
compatible with our existing assumptions. I ended up with an approach that forms PBDs in 
more erroneous cases than before.  One downside of this is that we now produce a spurious
  "type annotation missing in pattern"
diagnostic in some cases.  I'll take care of that in a follow-on patch.





Swift SVN r26224
2015-03-17 16:14:18 +00:00
Dmitri Hrybenko
3b04d1b013 tests: reorganize tests so that they actually use the target platform
Most tests were using %swift or similar substitutions, which did not
include the target triple and SDK.  The driver was defaulting to the
host OS.  Thus, we could not run the tests when the standard library was
not built for OS X.

Swift SVN r24504
2015-01-19 06:52:49 +00:00
Denis Vnukov
ffbed6979d Fix for rdar://problem/18990358 (Fuzzing swift: Swift verifier crashes).
Having VarDecl created with IsStatic=false and then modifying it to true later seems 
fragile, e.g. in this bug this attribute was not properly set because of early-outs. 
In this patch I just moved code fixing VarDecl, but in future we should consider 
making this flag immutable and initializing it on creation.



Swift SVN r23406
2014-11-18 16:02:28 +00:00
Dave Abrahams
8c803f7959 [stdlib] internal-ize CharacterLiteralConvertible
That, and _BuiltinCharacterLiteralConvertible, are not actually useful
without special hidden switches being passed to the compiler.  We don't
want to have to explain them to users.

Swift SVN r22036
2014-09-17 20:41:56 +00:00
Doug Gregor
e23aa008e6 Switch CharacterLiteralConvertible over to an initializer requirement.
Swift SVN r21985
2014-09-16 21:59:11 +00:00
Argyrios Kyrtzidis
628567bfe5 [Frontend] Make it erroneous if no frontend action is specified when invoking the frontend, and update tests.
Swift SVN r21584
2014-08-29 19:17:37 +00:00
Chris Lattner
287059b360 implement <rdar://problem/17279286> Swift has too many Unicode escape sequence forms
This consolidates the \x, \u, and \U escape sequences into one \u{abc} escape sequence.
For now we still parse and cleanly reject the old forms with a nice error message, this
will eventually be removed in a later beta (tracked by rdar://17527814)


Swift SVN r19435
2014-07-01 23:27:44 +00:00
Joe Groff
b51b1f0cfd "invalid unicode code point" -> "invalid unicode scalar"
We reject surrogates in strings and characters, which are valid code points, but not valid Unicode scalars.

Swift SVN r18467
2014-05-20 21:21:38 +00:00
Ted Kremenek
7da31bdfdd Disable parsing of single quoted character literals, enabling under a flag.
I didn't want to rip this logic out wholesale.  There is a possibility
the character lexing can be reborn/revisited later, and
disabling it in the parser was easy.

Swift SVN r18102
2014-05-15 07:05:59 +00:00
Dmitri Hrybenko
43fa9161ba Don't accept single quoted character literal anymore
rdar://16363872


Swift SVN r17785
2014-05-09 16:57:21 +00:00