| 752 | } |
| 753 | |
| 754 | void BfAutoComplete::AddCurrentTypes(BfTypeInstance* typeInst, const StringImpl& filter, bool allowProtected, bool allowPrivate, bool onlyAttribute) |
| 755 | { |
| 756 | if (typeInst != mModule->mCurTypeInstance) |
| 757 | AddTypeDef(typeInst->mTypeDef->GetDefinition(), filter, onlyAttribute); |
| 758 | |
| 759 | auto typeDef = typeInst->mTypeDef->GetDefinition(); |
| 760 | for (auto nestedTypeDef : typeDef->mNestedTypes) |
| 761 | { |
| 762 | if (nestedTypeDef->mIsPartial) |
| 763 | { |
| 764 | nestedTypeDef = mSystem->GetCombinedPartial(nestedTypeDef); |
| 765 | if (nestedTypeDef == NULL) |
| 766 | continue; |
| 767 | } |
| 768 | |
| 769 | if (CheckProtection(nestedTypeDef->mProtection, nestedTypeDef, allowProtected, allowPrivate)) |
| 770 | AddTypeDef(nestedTypeDef, filter, onlyAttribute); |
| 771 | } |
| 772 | |
| 773 | auto outerType = mModule->GetOuterType(typeInst); |
| 774 | if (outerType != NULL) |
| 775 | AddCurrentTypes(outerType, filter, allowProtected, allowPrivate, onlyAttribute); |
| 776 | |
| 777 | allowPrivate = false; |
| 778 | auto baseType = mModule->GetBaseType(typeInst); |
| 779 | if (baseType != NULL) |
| 780 | AddCurrentTypes(baseType, filter, allowProtected, allowPrivate, onlyAttribute); |
| 781 | } |
| 782 | |
| 783 | void BfAutoComplete::AddField(BfTypeInstance* typeInst, BfFieldDef* fieldDef, BfFieldInstance* fieldInstance, const StringImpl& filter) |
| 784 | { |
nothing calls this directly
no test coverage detected