Fix SR-642 Code completion does not instantiate concrete element type of optional Set

This commit is contained in:
Alex Hoppen
2016-01-29 19:53:03 +01:00
parent e6a1dae8ea
commit 6e45d6bb5b
2 changed files with 19 additions and 2 deletions

View File

@@ -1708,9 +1708,10 @@ public:
Type ContextTy = VD->getDeclContext()->getDeclaredTypeOfContext();
if (ContextTy) {
Type MaybeNominalType = ExprType->getRValueInstanceType();
if (ContextTy->getAnyNominal() == MaybeNominalType->getAnyNominal() &&
if (ContextTy->lookThroughAllAnyOptionalTypes()->getAnyNominal() ==
MaybeNominalType->lookThroughAllAnyOptionalTypes()->getAnyNominal() &&
!isBoringBoundGenericType(MaybeNominalType)) {
if (Type T = MaybeNominalType->getTypeOfMember(
if (Type T = MaybeNominalType->lookThroughAllAnyOptionalTypes()->getTypeOfMember(
CurrDeclContext->getParentModule(), VD, TypeResolver.get()))
return TransformerPt ? T.transform(TransformerPt->getTransformerFunc()) :
T;