llvm-project/clang/lib/Sema
Douglas Gregor 1ac1b63c9c Implement variance for Objective-C type parameters.
Introduce co- and contra-variance for Objective-C type parameters,
which allows us to express that (for example) an NSArray is covariant
in its type parameter. This means that NSArray<NSMutableString *> * is
a subtype of NSArray<NSString *> *, which is expected of the immutable
Foundation collections.

Type parameters can be annotated with __covariant or __contravariant
to make them co- or contra-variant, respectively. This feature can be
detected by __has_feature(objc_generics_variance). Implements
rdar://problem/20217490.

llvm-svn: 241549
2015-07-07 03:58:54 +00:00
..
AnalysisBasedWarnings.cpp Switch users of the 'for (StmtRange range = stmt->children(); range; ++range)‘ pattern to range for loops. 2015-07-02 21:03:14 +00:00
AttributeList.cpp Automate attribute argument count semantic checking when there are variadic or optional arguments present. With this, the only time you should have to manually check attribute argument counts is when HasCustomParsing is set to true, or when you have variadic arguments that aren't really variadic (like ownership_holds and friends). 2014-07-31 16:37:04 +00:00
CMakeLists.txt Split off CUDA-specific Sema parts to a new file 2014-09-03 15:27:03 +00:00
CodeCompleteConsumer.cpp Teach Twine to support SmallString. 2015-03-17 09:51:17 +00:00
DeclSpec.cpp C++ support for Objective-C lightweight generics. 2015-07-07 03:58:14 +00:00
DelayedDiagnostic.cpp Add -Wpartial-availability. 2015-03-19 19:18:22 +00:00
IdentifierResolver.cpp [modules] Remove redundant import of lexical decls when building a lookup table 2015-03-23 03:25:59 +00:00
JumpDiagnostics.cpp Switch users of the 'for (StmtRange range = stmt->children(); range; ++range)‘ pattern to range for loops. 2015-07-02 21:03:14 +00:00
Makefile
MultiplexExternalSemaSource.cpp Detect uses of mismatching forms of 'new' and 'delete' 2015-05-18 19:59:11 +00:00
Scope.cpp MS ABI: Implement the MSVC 2015 scheme for scope disambiguation 2015-03-19 21:54:30 +00:00
ScopeInfo.cpp SEH: Diagnose use of C++ EH and SEH in the same function 2015-02-02 22:15:31 +00:00
Sema.cpp [ObjC] Add NSValue support for objc_boxed_expressions 2015-06-26 05:28:36 +00:00
SemaAccess.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
SemaAttr.cpp Implement section pragma feedback on r205810 2015-03-04 23:39:17 +00:00
SemaCUDA.cpp Create a frontend flag to disable CUDA cross-target call checks 2015-04-15 22:27:06 +00:00
SemaCXXScopeSpec.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
SemaCast.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
SemaChecking.cpp Warn when an Objective-C collection literal element is converted to an incompatible type. 2015-07-07 03:58:22 +00:00
SemaCodeComplete.cpp Parsing, semantic analysis, and AST for Objective-C type parameters. 2015-07-07 03:57:15 +00:00
SemaConsumer.cpp
SemaDecl.cpp Refactor to avoid long if-condition. 2015-07-06 22:56:29 +00:00
SemaDeclAttr.cpp [ObjC] Add NSValue support for objc_boxed_expressions 2015-06-26 05:28:36 +00:00
SemaDeclCXX.cpp Switch users of the 'for (StmtRange range = stmt->children(); range; ++range)‘ pattern to range for loops. 2015-07-02 21:03:14 +00:00
SemaDeclObjC.cpp Implement variance for Objective-C type parameters. 2015-07-07 03:58:54 +00:00
SemaExceptionSpec.cpp Switch users of the 'for (StmtRange range = stmt->children(); range; ++range)‘ pattern to range for loops. 2015-07-02 21:03:14 +00:00
SemaExpr.cpp Improve the Objective-C common-type computation used by the ternary operator. 2015-07-07 03:58:01 +00:00
SemaExprCXX.cpp Fix a typo correction crash when resolving ambiguous corrections. 2015-06-25 23:47:39 +00:00
SemaExprMember.cpp Substitute type arguments into uses of Objective-C interface members. 2015-07-07 03:57:53 +00:00
SemaExprObjC.cpp Implement the Objective-C __kindof type qualifier. 2015-07-07 03:58:42 +00:00
SemaFixItUtils.cpp [modules] Stop trying to fake up a linear MacroDirective history. 2015-04-29 23:20:19 +00:00
SemaInit.cpp [Sema] Range-loopify InititializationSequence destructor. NFC intended. 2015-07-01 21:51:58 +00:00
SemaLambda.cpp Fix assertion failure if a lambda array-capture is followed by a this capture. 2015-04-28 21:41:14 +00:00
SemaLookup.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
SemaObjCProperty.cpp Substitute type arguments into uses of Objective-C interface members. 2015-07-07 03:57:53 +00:00
SemaOpenMP.cpp Switch users of the 'for (StmtRange range = stmt->children(); range; ++range)‘ pattern to range for loops. 2015-07-02 21:03:14 +00:00
SemaOverload.cpp Implement the Objective-C __kindof type qualifier. 2015-07-07 03:58:42 +00:00
SemaPseudoObject.cpp Substitute type arguments into uses of Objective-C interface members. 2015-07-07 03:57:53 +00:00
SemaStmt.cpp Revert "Revert 241171, 241187, 241199 (32-bit SEH)." 2015-07-07 00:36:30 +00:00
SemaStmtAsm.cpp Fix for PR14269: Clang crashes when a bit field is used as inline assembler 2015-06-05 13:40:59 +00:00
SemaStmtAttr.cpp Add assume_safety option for pragma loop vectorize and interleave. 2015-06-11 23:23:17 +00:00
SemaTemplate.cpp PR24030, PR24033: Consistently check whether a new declaration conflicts with 2015-07-06 04:43:58 +00:00
SemaTemplateDeduction.cpp [Sema] Don't crash when deduction fails for decltype(auto) 2015-07-01 00:29:28 +00:00
SemaTemplateInstantiate.cpp Instantiation of local class members. 2015-06-29 17:50:19 +00:00
SemaTemplateInstantiateDecl.cpp [Sema] Range-loopify SemaTemplateInstantiateDecl.cpp. NFC. 2015-07-02 19:20:11 +00:00
SemaTemplateVariadic.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
SemaType.cpp Implement the Objective-C __kindof type qualifier. 2015-07-07 03:58:42 +00:00
TreeTransform.h C++ support for Objective-C lightweight generics. 2015-07-07 03:58:14 +00:00
TypeLocBuilder.cpp [C++11] Use 'nullptr'. Sema edition. 2014-05-26 06:22:03 +00:00
TypeLocBuilder.h Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00