summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseObjc.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [Parser] Don't code-complete twice.Argyrios Kyrtzidis2013-03-271-1/+1
| | | | | | | | | | | | | | | When we are consuming the current token just to enter a new token stream, we push the current token in the back of the stream so that we get it again. Unfortunately this had the effect where if the current token is a code-completion one, we would code-complete once during consuming it and another time after the stream ended. Fix this by making sure that, in this case, ConsumeAnyToken() will consume a code-completion token without invoking code-completion. rdar://12842503 llvm-svn: 178199
* Do the error recovery for @end only.Fariborz Jahanian2013-03-201-4/+7
| | | | | | | | I am not sure how much we can improve for when a randon ObjC keyword is thrown into the ivar decl. block. // rdar://6854840 llvm-svn: 177553
* Objective-C [qoi] more gracefull recovery when Fariborz Jahanian2013-03-201-17/+28
| | | | | | | '}' is missing for the ivar declarations. // rdar://6854840 llvm-svn: 177549
* Objective-C [qoi]: Provide improved parse diagnostics whenFariborz Jahanian2013-03-191-0/+4
| | | | | | | | | closing rbrace is missing in an ObjC class declaration. Can do beter than this, but it involves addition of overhead which will be present in correct code. // rdar://6854840 llvm-svn: 177435
* Use None rather than Optional<T>() where possible.David Blaikie2013-02-211-1/+1
| | | | llvm-svn: 175705
* Include llvm::Optional in clang/Basic/LLVM.hDavid Blaikie2013-02-201-1/+1
| | | | | | Post-commit CR feedback from Jordan Rose regarding r175594. llvm-svn: 175679
* Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.Jordan Rose2013-02-081-1/+2
| | | | | | | Nearly all of these changes are one-to-one replacements; the few that aren't have to do with custom identifier validation. llvm-svn: 174768
* Finish semantic analysis for [[carries_dependency]] attribute.Richard Smith2013-01-281-2/+2
| | | | | | | | | | This required plumbing through a new flag to determine whether a ParmVarDecl is actually a parameter of a function declaration (as opposed to a function typedef etc, where the attribute is prohibited). Weirdly, this attribute (just like [[noreturn]]) cannot be applied to a function type, just to a function declaration (and its parameters). llvm-svn: 173726
* objectiveC (take two): don't warn when in -Wselector mode andFariborz Jahanian2013-01-221-24/+5
| | | | | | | an unimplemented selector is consumed by "respondsToSelector:". // rdar://12938616 llvm-svn: 173179
* objectiveC: don't warn when in -Wselector mode andFariborz Jahanian2013-01-211-3/+22
| | | | | | | an unimplemented selector is consumed by "respondsToSelector:". // rdar://12938616 llvm-svn: 173097
* Refactor to call ActOnFinishFullExpr on every full expression. TeachRichard Smith2013-01-141-1/+1
| | | | | | | | ActOnFinishFullExpr that some of its checks only apply to discarded-value expressions. This adds missing checks for unexpanded variadic template parameter packs to a handful of constructs. llvm-svn: 172485
* s/CXX0X/CXX11/g, except for __GNU_EXPERIMENTAL_CXX0X__, and update a few ↵Richard Smith2013-01-021-1/+1
| | | | | | nearby 'C++0x' comments. llvm-svn: 171372
* Remove some remnants of OwningExprResult / OwningStmtResult.Nico Weber2012-12-311-20/+17
| | | | | | | These got deleted late 2010 during the Actions/Sema unification. No functionality change. llvm-svn: 171269
* Don't require a space between the two ">" in "vector<id<protocol>>" in objc++11.Nico Weber2012-12-141-5/+1
| | | | | | | | C++11 allowed writing "vector<vector<int>>" without a space between the two ">". This change allows this for protocols in template lists too in -std=c++11 mode, and improves the diagnostic in c++98 mode. llvm-svn: 170223
* Use @import rather than @__experimental_modules_import, since theDouglas Gregor2012-12-111-1/+1
| | | | | | latter is rather a mess to type. llvm-svn: 169919
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-1/+1
| | | | | | | | | | | | | uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
* objective-C: improve on warnings about misplacement of methodFariborz Jahanian2012-09-171-20/+4
| | | | | | argument names. // rdar://12263549 llvm-svn: 164077
* objective-C: issue warning when there is no whitespaceFariborz Jahanian2012-09-171-1/+25
| | | | | | | between objc method parameter name and colon. // rdar://12263549 llvm-svn: 164047
* Fix a couple of Doxygen issues pointed out by -Wdocumentation.Dmitri Gribenko2012-09-121-2/+2
| | | | llvm-svn: 163722
* Revert "objective-C: warn under a flag if missing argument"Ted Kremenek2012-09-121-14/+3
| | | | | | | We plan on discussing this more, but we shouldn't have it in the compiler in an incomplete state. llvm-svn: 163720
* Revert "objective-C: warn if selector has nothing but bare"Ted Kremenek2012-09-121-7/+2
| | | | | | We plan on discussing this more. llvm-svn: 163719
* objective-C: warn if selector has nothing but bareFariborz Jahanian2012-09-111-2/+7
| | | | | | ':' in its name. // rdar://8366823 llvm-svn: 163650
* objective-C: warn under a flag if missing argumentFariborz Jahanian2012-09-111-3/+14
| | | | | | | name results in unintended selector name. // rdar://12263549 llvm-svn: 163634
* Remove ASTOwningVector, it doesn't own anything and provides no value over ↵Benjamin Kramer2012-08-231-18/+9
| | | | | | SmallVector. llvm-svn: 162492
* Rip out remnants of move semantic emulation and smart pointers in Sema.Benjamin Kramer2012-08-231-13/+13
| | | | | | | These were nops for quite a while and only lead to confusion. ASTMultiPtr now behaves like a proper dumb array reference. llvm-svn: 162475
* objective-C++: dalyed parsing of ctors with memberFariborz Jahanian2012-08-101-6/+16
| | | | | | | initializer list defined inside an objc class implementation. wip llvm-svn: 161699
* objective-C++: delay parsing of ctor with try blockFariborz Jahanian2012-08-101-0/+10
| | | | | | | with member initializer list defined inside an objc implementation block. wip. llvm-svn: 161692
* objective-C++: delayed parsing of member function withFariborz Jahanian2012-08-101-4/+15
| | | | | | | function-try-block occuring in objc's implementation block. wip. llvm-svn: 161675
* objective-C: refactoring of objc's delayed parsing.Fariborz Jahanian2012-08-091-22/+3
| | | | llvm-svn: 161620
* objective-C: minor refactoring in methodFariborz Jahanian2012-08-091-9/+4
| | | | | | definition parsing logic. llvm-svn: 161593
* Minor simplification for r161534.Eli Friedman2012-08-081-6/+4
| | | | llvm-svn: 161544
* objective-C: refactor/simplify parsing of delayedFariborz Jahanian2012-08-081-1/+4
| | | | | | | method/c-funcs defined in objc class implementation. No intended functionality change. llvm-svn: 161540
* PR13558: Fix typo 'compatiblity'. Thinking of the children. Apparently.Richard Smith2012-08-081-2/+2
| | | | llvm-svn: 161537
* Handle deprecation diagnostics correctly for C struct fields and Objective-C ↵Eli Friedman2012-08-081-4/+6
| | | | | | properties/ivars. <rdar://problem/6642337>. llvm-svn: 161534
* objective-c parsing. Don't crash when selector nameFariborz Jahanian2012-07-261-5/+5
| | | | | | is missing in method prototype. // rdar://11939584 llvm-svn: 160789
* objective-c: provide fixit hint for @autoreleasepoolFariborz Jahanian2012-07-091-2/+17
| | | | | | and similar other keywords. // rdar://10723084 llvm-svn: 159956
* objective-c: just as we have done for method definitions,Fariborz Jahanian2012-07-021-22/+41
| | | | | | | | c-functions declared in implementation should have their parsing delayed until the end so, they can access forward declared private methods. // rdar://10387088 llvm-svn: 159626
* Clean up a large number of C++11 attribute parse issues, including parsingAlexis Hunt2012-06-231-1/+1
| | | | | | | | | | | | | | | | | | attributes in more places where we didn't and catching a lot more issues. This implements nearly every aspect of C++11 attribute parsing, except for: - Attributes are permitted on explicit instantiations inside the declarator (but not preceding the decl-spec) - Attributes are permitted on friend declarations of functions. - Multiple instances of the same attribute in an attribute-list (e.g. [[noreturn, noreturn]], not [[noreturn]] [[noreturn]] which is conforming) are allowed. The first two are marked as expected-FIXME in the test file and the latter is probably a defect and is currently untested. Thanks to Richard Smith for providing the lion's share of the testcases. llvm-svn: 159072
* objective-c: deprecated C-like parameters in Objective-C Fariborz Jahanian2012-06-211-2/+5
| | | | | | | method declarations. // rdar://11578353. llvm-svn: 158929
* Move isCXXSimpleTypeSpecifier from Parser to Sema and tweak it for wider use.Kaelyn Uhrain2012-06-151-1/+1
| | | | llvm-svn: 158572
* Documentation cleanup, fixing Doxygen markup. Mostly this avoids common termsJames Dennett2012-06-111-5/+5
| | | | | | | | | | | | | | such as "protocol" and "expression" being implicitly turned into links to mistakenly-generated Doxygen pages: - Escaping @ symbols when Doxygen would otherwise incorrectly interpret them; - Escaping # symbols when they're not intended as explicit Doxygen link requests, such as when discussing preprocessor directives; - In one odd case, unescaping @ in @__experimental_modules_import, because Doxygen wrote '\@' to the output in that case, causing the example in the description of ImportDecl to be wrong; and - Fixing a typo: @breif -> @brief. llvm-svn: 158299
* objc: position of 'fixit' was off by one.Fariborz Jahanian2012-05-291-1/+1
| | | | | | This patch fixes it. // rdar://11488351 llvm-svn: 157646
* objective-c: provide a useful 'fixit' suggestion whenFariborz Jahanian2012-05-211-1/+5
| | | | | | | errornously using commas to separate ObjC message arguments. // rdar://11376372 llvm-svn: 157216
* Move the warnings for extra semi-colons under -Wextra-semi. Also, addedRichard Trieu2012-05-161-3/+1
| | | | | | | | a warning for an extra semi-colon after function definitions. Added logic so that a block of semi-colons on a line will only get one warning instead of a warning for each semi-colon. llvm-svn: 156934
* [libclang/AST] Index references of protocols in "@protocol(...)" syntax.Argyrios Kyrtzidis2012-05-161-1/+2
| | | | | | | | | To do that, keep track of the location of the protocol id in the ObjCProtocolExpr AST node. rdar://11190837 llvm-svn: 156890
* Don't crash when using objc boxed expression with parsing error.Argyrios Kyrtzidis2012-05-101-1/+4
| | | | | | rdar://11426994 llvm-svn: 156565
* objective-c. Fixes a 'fixit' where location ofFariborz Jahanian2012-05-091-0/+1
| | | | | | | '*' on objective-c class name was misplaced. // rdar://11311333 llvm-svn: 156517
* Refactor DelayedDiagnostics so that it keeps diagnostics inJohn McCall2012-05-071-1/+1
| | | | | | | separate pools owned by the RAII objects that keep pushing decl state. This gives us quite a bit more flexibility. llvm-svn: 156289
* Implements boxed expressions for Objective-C. <rdar://problem/10194391>Patrick Beard2012-04-191-0/+26
| | | | llvm-svn: 155082
* Added a flag to the parser to skip method bodies.Erik Verbruggen2012-04-121-5/+3
| | | | llvm-svn: 154584
OpenPOWER on IntegriCloud