]> granicus.if.org Git - clang/commit
Parsing, semantic analysis, and AST for Objective-C type parameters.
authorDouglas Gregor <dgregor@apple.com>
Tue, 7 Jul 2015 03:57:15 +0000 (03:57 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 7 Jul 2015 03:57:15 +0000 (03:57 +0000)
commit5df68d34cd4785fd723857ea8004092b96203cf9
tree9c0d34776dea18b817ebcb3b0ad2c061f5f16abc
parent27cac9536ccbba20d1c0580aa9e62416e06441e8
Parsing, semantic analysis, and AST for Objective-C type parameters.

Produce type parameter declarations for Objective-C type parameters,
and attach lists of type parameters to Objective-C classes,
categories, forward declarations, and extensions as
appropriate. Perform semantic analysis of type bounds for type
parameters, both in isolation and across classes/categories/extensions
to ensure consistency.

Also handle (de-)serialization of Objective-C type parameter lists,
along with sundry other things one must do to add a new declaration to
Clang.

Note that Objective-C type parameters are typedef name declarations,
like typedefs and C++11 type aliases, in support of type erasure.

Part of rdar://problem/6294649.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241541 91177308-0d34-0410-b5e6-96231b3b80d8
30 files changed:
include/clang/AST/DataRecursiveASTVisitor.h
include/clang/AST/DeclObjC.h
include/clang/AST/RecursiveASTVisitor.h
include/clang/Basic/DeclNodes.td
include/clang/Basic/DiagnosticParseKinds.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Parse/Parser.h
include/clang/Sema/Sema.h
include/clang/Sema/Template.h
include/clang/Serialization/ASTBitCodes.h
lib/AST/ASTContext.cpp
lib/AST/ASTDumper.cpp
lib/AST/ASTImporter.cpp
lib/AST/DeclBase.cpp
lib/AST/DeclObjC.cpp
lib/AST/DeclPrinter.cpp
lib/CodeGen/CGDecl.cpp
lib/Parse/ParseObjc.cpp
lib/Parse/ParseTemplate.cpp
lib/Sema/SemaCodeComplete.cpp
lib/Sema/SemaDeclObjC.cpp
lib/Sema/SemaExprObjC.cpp
lib/Serialization/ASTCommon.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriterDecl.cpp
test/Index/comment-objc-parameterized-classes.m [new file with mode: 0644]
test/PCH/objc_parameterized_classes.m [new file with mode: 0644]
test/Parser/objc-error-qualified-implementation.m
test/SemaObjC/parameterized_classes.m [new file with mode: 0644]
tools/libclang/CIndex.cpp