diff options
author | Volodymyr Sapsai <vsapsai@apple.com> | 2019-02-16 01:01:08 +0000 |
---|---|---|
committer | Volodymyr Sapsai <vsapsai@apple.com> | 2019-02-16 01:01:08 +0000 |
commit | bcb4f7208dac24bfeac1d4a9071eb19c8c2ccd27 (patch) | |
tree | ef79d1eb54aa4aaaef875e3f92b3f515d5357fd5 /lldb/packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/main.cpp | |
parent | 70ca752ccf6a8f362aea25ccd3ee2bbceca93b20 (diff) | |
download | bcm5719-llvm-bcb4f7208dac24bfeac1d4a9071eb19c8c2ccd27.tar.gz bcm5719-llvm-bcb4f7208dac24bfeac1d4a9071eb19c8c2ccd27.zip |
[ObjC generics] Fix applying `__kindof` to the type parameter.
Fixes the warning about incompatible pointer types on assigning to a
subclass of type argument an expression of type `__kindof TypeParam`.
We already have a mechanism in `ASTContext::canAssignObjCInterfaces`
that handles `ObjCObjectType` with `__kindof`. But it wasn't triggered
because during type substitution `__kindof TypeParam` was represented as
`AttributedType` with attribute `ObjCKindOf` and equivalent type
`TypeArg`. For assignment type checking we use canonical types so
attributed type was desugared and the attribute was ignored.
The fix is in checking transformed `AttributedType` and pushing
`__kindof` down into `ObjCObjectType` when necessary.
rdar://problem/38514910
Reviewers: ahatanak, erik.pilkington, doug.gregor
Reviewed By: doug.gregor
Subscribers: jkorous, dexonsmith, manmanren, jordan_rose, doug.gregor, cfe-commits
Differential Revision: https://reviews.llvm.org/D57076
llvm-svn: 354189
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/main.cpp')
0 files changed, 0 insertions, 0 deletions