diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-05-21 22:21:19 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-05-21 22:21:19 +0000 |
commit | f44d2a8a3e05ef27e72ea8f2e07e1a7266e4b4c9 (patch) | |
tree | 7648de300006ecec53720d665e0a627c0d5910d0 /lldb/source/Core/Module.cpp | |
parent | c6c7e4a67cf02e9daec3a7071fd50bcf0cb59d82 (diff) | |
download | bcm5719-llvm-f44d2a8a3e05ef27e72ea8f2e07e1a7266e4b4c9.tar.gz bcm5719-llvm-f44d2a8a3e05ef27e72ea8f2e07e1a7266e4b4c9.zip |
PR16094: I should have known Obj-C init-capture disambiguation couldn't be
*that* easy...
Try a bit harder to disambiguate. This is mostly straightforward, but for
=-style initializers, we actually need to know where an expression ends:
[foo = bar baz]
is a message send, whereas
[foo = bar + baz]
is a lambda-introducer. Handle this by parsing the expression eagerly, and
replacing it with an annotation token. By chance, we use the *exact same*
parsing rules in both cases (except that we need to assume we're inside a
message send for the parse, to turn off various forms of inapplicable
error recovery).
llvm-svn: 182432
Diffstat (limited to 'lldb/source/Core/Module.cpp')
0 files changed, 0 insertions, 0 deletions