diff options
author | Manman Ren <manman.ren@gmail.com> | 2016-09-13 17:41:05 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2016-09-13 17:41:05 +0000 |
commit | c5705bae05590b799c4726c35acf2c7382e0857d (patch) | |
tree | 61a2bcc0b02f7872b565e61595e5e9198b32cb5f /lldb/source/Commands/CommandObjectBreakpointCommand.cpp | |
parent | d3e85b98be7a8fb68e235bf6ead69b4bc5e50c42 (diff) | |
download | llvm-c5705bae05590b799c4726c35acf2c7382e0857d.zip llvm-c5705bae05590b799c4726c35acf2c7382e0857d.tar.gz llvm-c5705bae05590b799c4726c35acf2c7382e0857d.tar.bz2 |
ObjectiveC Generics: Start using ObjCTypeParamType.
For ObjC type parameter, we used to have TypedefType that is canonicalized to
id or the bound type. We can't represent "T <protocol>" and thus will lose
the type information in the following example:
@interface MyMutableDictionary<KeyType, ObjectType> : NSObject
- (void)setObject:(ObjectType)obj forKeyedSubscript:(KeyType <NSCopying>)key;
@end
MyMutableDictionary<NSString *, NSString *> *stringsByString;
NSNumber *n1, *n2;
stringsByString[n1] = n2;
--> no warning on type mismatch of the key.
To fix the problem, we introduce a new type ObjCTypeParamType that supports
a list of protocol qualifiers.
We create ObjCTypeParamType for ObjCTypeParamDecl when we create
ObjCTypeParamDecl. We also substitute ObjCTypeParamType instead of TypedefType
on an ObjCTypeParamDecl.
rdar://24619481
rdar://25060179
Differential Revision: http://reviews.llvm.org/D23080
llvm-svn: 281358
Diffstat (limited to 'lldb/source/Commands/CommandObjectBreakpointCommand.cpp')
0 files changed, 0 insertions, 0 deletions