Home | History | Annotate | Download | only in Sema

Lines Matching refs:Results

41   /// \brief A container of code-completion results.
53 /// \brief The actual results we have found.
54 std::vector<Result> Results;
90 // 1 -> 2 elements: create the vector of results and push in the
118 /// results.
121 /// \brief The semantic analysis object for which results are being
131 /// results that are not desirable.
159 /// \brief The completion context in which we are gathering results.
204 /// results.
210 /// \brief Set the filter used for code-completion results.
215 Result *data() { return Results.empty()? nullptr : &Results.front(); }
216 unsigned size() const { return Results.size(); }
217 bool empty() const { return Results.empty(); }
245 /// \brief Retrieve the code-completion context for which results are
257 /// code completion results.
322 /// results of name lookup. All of the predicates have the same type, so that
529 // added as results.
533 // Class template (partial) specializations are never added as results.
538 // Using declarations themselves are never added as results.
552 // Filter out any unwanted results.
773 // If we have a preferred type, adjust the priority for results with exactly-
825 Results.push_back(R);
830 assert(!ShadowMaps.empty() && "Must enter into a results scope");
833 // For non-declaration results, just add the result.
834 Results.push_back(R);
872 Results[Index].Declaration = R.Declaration;
938 // Insert this result into the set of results and into the current shadow
940 Results.size());
941 Results.push_back(R);
950 // For non-declaration results, just add the result.
951 Results.push_back(R);
1024 // Insert this result into the set of results.
1025 Results.push_back(R);
1033 "Declaration results need more context");
1034 Results.push_back(R);
1262 ResultBuilder &Results;
1266 CodeCompletionDeclConsumer(ResultBuilder &Results, DeclContext *CurContext)
1267 : Results(Results), CurContext(CurContext) { }
1273 Accessible = Results.getSema().IsSimplyAccessible(ND, Ctx);
1275 ResultBuilder::Result Result(ND, Results.getBasePriority(ND), nullptr,
1277 Results.AddResult(Result, CurContext, Hiding, InBaseClass);
1282 /// \brief Add type specifiers for the current language as keyword results.
1284 ResultBuilder &Results) {
1286 Results.AddResult(Result("short", CCP_Type));
1287 Results.AddResult(Result("long", CCP_Type));
1288 Results.AddResult(Result("signed", CCP_Type));
1289 Results.AddResult(Result("unsigned", CCP_Type));
1290 Results.AddResult(Result("void", CCP_Type));
1291 Results.AddResult(Result("char", CCP_Type));
1292 Results.AddResult(Result("int", CCP_Type));
1293 Results.AddResult(Result("float", CCP_Type));
1294 Results.AddResult(Result("double", CCP_Type));
1295 Results.AddResult(Result("enum", CCP_Type));
1296 Results.AddResult(Result("struct", CCP_Type));
1297 Results.AddResult(Result("union", CCP_Type));
1298 Results.AddResult(Result("const", CCP_Type));
1299 Results.AddResult(Result("volatile", CCP_Type));
1303 Results.AddResult(Result("_Complex", CCP_Type));
1304 Results.AddResult(Result("_Imaginary", CCP_Type));
1305 Results.AddResult(Result("_Bool", CCP_Type));
1306 Results.AddResult(Result("restrict", CCP_Type));
1309 CodeCompletionBuilder Builder(Results.getAllocator(),
1310 Results.getCodeCompletionTUInfo());
1313 Results.AddResult(Result("bool", CCP_Type +
1315 Results.AddResult(Result("class", CCP_Type));
1316 Results.AddResult(Result("wchar_t", CCP_Type));
1324 Results.AddResult(Result(Builder.TakeString()));
1327 Results.AddResult(Result("auto", CCP_Type));
1328 Results.AddResult(Result("char16_t", CCP_Type));
1329 Results.AddResult(Result("char32_t", CCP_Type));
1335 Results.AddResult(Result(Builder.TakeString()));
1342 // Results.AddResult(Result("_Decimal32"));
1343 // Results.AddResult(Result("_Decimal64"));
1344 // Results.AddResult(Result("_Decimal128"));
1349 Results.AddResult(Result(Builder.TakeString()));
1355 Results.AddResult(Result(Builder.TakeString()));
1359 Results.AddResult(Result("_Nonnull", CCP_Type));
1360 Results.AddResult(Result("_Null_unspecified", CCP_Type));
1361 Results.AddResult(Result("_Nullable", CCP_Type));
1366 ResultBuilder &Results) {
1371 Results.AddResult(Result("extern"));
1372 Results.AddResult(Result("static"));
1377 ResultBuilder &Results) {
1383 Results.AddResult(Result("explicit"));
1384 Results.AddResult(Result("friend"));
1385 Results.AddResult(Result("mutable"));
1386 Results.AddResult(Result("virtual"));
1395 Results.AddResult(Result("inline"));
1411 static void AddObjCExpressionResults(ResultBuilder &Results, bool NeedAt);
1412 Results, bool NeedAt);
1414 ResultBuilder &Results,
1417 ResultBuilder &Results,
1420 ResultBuilder &Results,
1422 static void AddObjCTopLevelResults(ResultBuilder &Results, bool NeedAt);
1424 static void AddTypedefResult(ResultBuilder &Results) {
1425 CodeCompletionBuilder Builder(Results.getAllocator(),
1426 Results.getCodeCompletionTUInfo());
1432 Results.AddResult(CodeCompletionResult(Builder.TakeString()));
1514 static void addThisCompletion(Sema &S, ResultBuilder &Results) {
1519 CodeCompletionAllocator &Allocator = Results.getAllocator();
1520 CodeCompletionBuilder Builder(Allocator, Results.getCodeCompletionTUInfo());
1527 Results.AddResult(CodeCompletionResult(Builder.TakeString()));
1534 ResultBuilder &Results) {
1535 CodeCompletionAllocator &Allocator = Results.getAllocator();
1536 CodeCompletionBuilder Builder(Allocator, Results.getCodeCompletionTUInfo());
1542 if (Results.includeCodePatterns()) {
1551 Results.AddResult(Result(Builder.TakeString()));
1560 Results.AddResult(Result(Builder.TakeString()));
1568 Results.AddResult(Result(Builder.TakeString()));
1575 Results.AddResult(Result(Builder.TakeString()));
1577 if (Results.includeCodePatterns()) {
1582 Results.AddResult(Result(Builder.TakeString()));
1587 AddObjCTopLevelResults(Results, true);
1589 AddTypedefResult(Results);
1600 Results.AddResult(Result(Builder.TakeString()));
1611 Results.AddResult(Result(Builder.TakeString()));
1615 AddTypedefResult(Results);
1619 if (Results.includeCodePatterns())
1621 Results.AddResult(Result(Builder.TakeString()));
1625 if (Results.includeCodePatterns())
1627 Results.AddResult(Result(Builder.TakeString()));
1631 if (Results.includeCodePatterns())
1633 Results.AddResult(Result(Builder.TakeString()));
1640 if (SemaRef.getLangOpts().CPlusPlus && Results.includeCodePatterns()) {
1646 Results.AddResult(Result(Builder.TakeString()));
1649 AddStorageSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1650 AddFunctionSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1654 AddObjCInterfaceResults(SemaRef.getLangOpts(), Results, true);
1655 AddStorageSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1656 AddFunctionSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1660 AddObjCImplementationResults(SemaRef.getLangOpts(), Results, true);
1661 AddStorageSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1662 AddFunctionSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1666 AddObjCVisibilityResults(SemaRef.getLangOpts(), Results, true);
1671 AddTypedefResult(Results);
1673 if (SemaRef.getLangOpts().CPlusPlus && Results.includeCodePatterns() &&
1688 Results.AddResult(Result(Builder.TakeString()));
1691 AddObjCStatementResults(Results, true);
1693 if (Results.includeCodePatterns()) {
1706 Results.AddResult(Result(Builder.TakeString()));
1719 Results.AddResult(Result(Builder.TakeString()));
1729 Results.AddResult(Result(Builder.TakeString()));
1734 Results.AddResult(Result(Builder.TakeString()));
1737 if (Results.includeCodePatterns()) {
1750 Results.AddResult(Result(Builder.TakeString()));
1762 Results.AddResult(Result(Builder.TakeString()));
1781 Results.AddResult(Result(Builder.TakeString()));
1787 Results.AddResult(Result(Builder.TakeString()));
1793 Results.AddResult(Result(Builder.TakeString()));
1812 Results.AddResult(Result(Builder.TakeString()));
1818 Results.AddResult(Result(Builder.TakeString()));
1826 Results.AddResult(Result(Builder.TakeString()));
1832 AddStorageSpecifiers(CCC, SemaRef.getLangOpts(), Results);
1844 Results.AddResult(Result(Builder.TakeString()));
1852 Results.AddResult(Result(Builder.TakeString()));
1860 Results.AddResult(Result(Builder.TakeString()));
1867 addThisCompletion(SemaRef, Results);
1872 Results.AddResult(Result(Builder.TakeString()));
1877 Results.AddResult(Result(Builder.TakeString()));
1888 Results.AddResult(Result(Builder.TakeString()));
1899 Results.AddResult(Result(Builder.TakeString()));
1909 Results.AddResult(Result(Builder.TakeString()));
1919 Results.AddResult(Result(Builder.TakeString()));
1928 Results.AddResult(Result(Builder.TakeString()));
1938 Results.AddResult(Result(Builder.TakeString()));
1950 Results.AddResult(Result(Builder.TakeString()));
1957 Results.AddResult(Result(Builder.TakeString()));
1967 Results.AddResult(Result(Builder.TakeString()));
1975 Results.AddResult(Result(Builder.TakeString()));
1984 Results.AddResult(Result(Builder.TakeString()));
1992 Results.AddResult(Result(Builder.TakeString()));
2000 Results.AddResult(Result(Builder.TakeString()));
2008 Results.AddResult(Result(Builder.TakeString()));
2025 Results.AddResult(Result(Builder.TakeString()));
2029 AddObjCExpressionResults(Results, true);
2042 Results.AddResult(Result(Builder.TakeString()));
2051 Results.AddResult(Result(Builder.TakeString()));
2061 AddTypeSpecifierResults(SemaRef.getLangOpts(), Results);
2064 Results.AddResult(Result("operator"));
3101 static void AddMacroResults(Preprocessor &PP, ResultBuilder &Results,
3106 Results.EnterNewScope();
3117 Results.AddResult(Result(M->first,
3124 Results.ExitScope();
3129 ResultBuilder &Results) {
3132 Results.EnterNewScope();
3134 Results.AddResult(Result("__PRETTY_FUNCTION__", CCP_Constant));
3135 Results.AddResult(Result("__FUNCTION__", CCP_Constant));
3137 Results.AddResult(Result("__func__", CCP_Constant));
3138 Results.ExitScope();
3144 CodeCompletionResult *Results,
3147 CodeCompleter->ProcessCodeCompleteResults(*S, Context, Results, NumResults);
3206 /// \brief If we're in a C++ virtual member function, add completion results
3210 /// \param S The semantic analysis object for which we are generating results.
3215 ResultBuilder &Results) {
3236 CodeCompletionBuilder Builder(Results.getAllocator(),
3237 Results.getCodeCompletionTUInfo());
3251 Builder.AddTextChunk(Results.getAllocator().CopyString(OS.str()));
3256 Builder.AddTypedTextChunk(Results.getAllocator().CopyString(
3267 Results.getAllocator().CopyString(P->getIdentifier()->getName()));
3270 Results.AddResult(CodeCompletionResult(Builder.TakeString(),
3275 Results.Ignore(Overridden);
3282 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3285 Results.EnterNewScope();
3287 CodeCompletionAllocator &Allocator = Results.getAllocator();
3288 CodeCompletionBuilder Builder(Allocator, Results.getCodeCompletionTUInfo());
3297 Results.AddResult(Result(Builder.TakeString(),
3317 Results.AddResult(Result(Builder.TakeString(),
3326 Results.ExitScope();
3327 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
3328 Results.data(),Results.size());
3333 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3336 Results.EnterNewScope();
3338 // Determine how to filter results, e.g., so that the names of
3351 Results.setFilter(&ResultBuilder::IsOrdinaryNonValueName);
3360 Results.setFilter(&ResultBuilder::IsOrdinaryName);
3362 Results.setFilter(&ResultBuilder::IsOrdinaryNonTypeName);
3365 MaybeAddOverrideCalls(*this, /*InContext=*/nullptr, Results);
3374 // the member function to filter/prioritize the results list.
3377 Results.setObjectTypeQualifiers(
3380 CodeCompletionDeclConsumer Consumer(Results, CurContext);
3384 AddOrdinaryNameResults(CompletionContext, S, *this, Results);
3385 Results.ExitScope();
3393 AddPrettyFunctionResults(getLangOpts(), Results);
3411 AddMacroResults(PP, Results, false);
3413 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
3414 Results.data(),Results.size());
3422 ResultBuilder &Results);
3428 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3433 Results.EnterNewScope();
3436 Results.AddResult(Result("const"));
3437 Results.AddResult(Result("volatile"));
3439 Results.AddResult(Result("restrict"));
3443 Results.AddResult(Result("operator"));
3448 Results.allowNestedNameSpecifiers();
3449 Results.setFilter(&ResultBuilder::IsImpossibleToSatisfy);
3450 CodeCompletionDeclConsumer Consumer(Results, CurContext);
3453 Results.setFilter(nullptr);
3456 Results.ExitScope();
3475 AddClassMessageCompletions(*this, S, T, None, false, false, Results);
3478 // Note that we intentionally suppress macro results here, since we do not
3482 Results.getCompletionContext(),
3483 Results.data(), Results.size());
3501 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3505 Results.setFilter(&ResultBuilder::IsObjCCollection);
3507 Results.setFilter(&ResultBuilder::IsIntegralConstantValue);
3509 Results.setFilter(&ResultBuilder::IsOrdinaryName);
3511 Results.setFilter(&ResultBuilder::IsOrdinaryNonTypeName);
3514 Results.setPreferredType(Data.PreferredType.getNonReferenceType());
3518 Results.Ignore(Data.IgnoreDecls[I]);
3520 CodeCompletionDeclConsumer Consumer(Results, CurContext);
3524 Results.EnterNewScope();
3525 AddOrdinaryNameResults(PCC_Expression, S, *this, Results);
3526 Results.ExitScope();
3537 AddPrettyFunctionResults(getLangOpts(), Results);
3540 AddMacroResults(PP, Results, false, PreferredTypeIsPointer);
3544 Results.data(),Results.size());
3582 ResultBuilder &Results) {
3591 Results.MaybeAddResult(Result(P, Results.getBasePriority(P), nullptr),
3597 PrintingPolicy Policy = getCompletionPrintingPolicy(Results.getSema());
3602 CodeCompletionBuilder Builder(Results.getAllocator(),
3603 Results.getCodeCompletionTUInfo());
3607 Results.getAllocator().CopyString(Name->getName()));
3609 Results.MaybeAddResult(Result(Builder.TakeString(), M,
3621 CurContext, AddedProperties, Results);
3627 CurContext, AddedProperties, Results);
3633 CurContext, AddedProperties, Results);
3639 AddedProperties, Results);
3645 CurContext, AddedProperties, Results);
3689 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3693 Results.EnterNewScope();
3697 Results.setObjectTypeQualifiers(BaseType.getQualifiers());
3700 Results.allowNestedNameSpecifiers();
3701 CodeCompletionDeclConsumer Consumer(Results, CurContext);
3706 if (!Results.empty()) {
3720 Results.AddResult(Result("template"));
3727 // Add property results based on our interface.
3733 AddedProperties, Results);
3738 CurContext, AddedProperties, Results);
3751 CodeCompletionDeclConsumer Consumer(Results, CurContext);
3752 Results.setFilter(&ResultBuilder::IsObjCIvar);
3760 Results.ExitScope();
3762 // Hand off the results found for code completion.
3764 Results.getCompletionContext(),
3765 Results.data(),Results.size());
3797 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3799 CodeCompletionDeclConsumer Consumer(Results, CurContext);
3802 Results.setFilter(Filter);
3808 Results.setFilter(&ResultBuilder::IsNestedNameSpecifier);
3812 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
3813 Results.data(),Results.size());
3817 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3820 Results.EnterNewScope();
3822 Results.AddResult("const");
3824 Results.AddResult("volatile");
3827 Results.AddResult("restrict");
3830 Results.AddResult("_Atomic");
3833 Results.AddResult("__unaligned");
3834 Results.ExitScope();
3836 Results.getCompletionContext(),
3837 Results.data(), Results.size());
3910 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
3913 Results.EnterNewScope();
3919 Results.AddResult(R, CurContext, nullptr, false);
3921 Results.ExitScope();
3927 AddMacroResults(PP, Results, false);
3933 Results.data(),Results.size());
3950 SmallVectorImpl<ResultCandidate> &Results,
3961 // Add the remaining viable overload candidates as code-completion results.
3964 Results.push_back(ResultCandidate(Candidate.Function));
4020 // results. We may want to revisit this strategy in the future,
4021 // e.g., by merging the two kinds of results.
4036 SmallVector<ResultCandidate, 8> Results;
4064 Results.push_back(ResultCandidate(FD));
4099 Results.push_back(ResultCandidate(FP));
4102 Results.push_back(ResultCandidate(FT));
4106 mergeCandidatesWithResults(*this, Results, CandidateSet, Loc);
4107 CodeCompleteOverloadResults(*this, S, Results, Args.size(),
4147 SmallVector<ResultCandidate, 8> Results;
4148 mergeCandidatesWithResults(*this, Results, CandidateSet, Loc);
4149 CodeCompleteOverloadResults(*this, S, Results, Args.size());
4179 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4182 Results.setFilter(&ResultBuilder::IsOrdinaryName);
4183 Results.EnterNewScope();
4185 CodeCompletionDeclConsumer Consumer(Results, CurContext);
4189 AddOrdinaryNameResults(PCC_Statement, S, *this, Results);
4192 CodeCompletionBuilder Builder(Results.getAllocator(),
4193 Results.getCodeCompletionTUInfo());
4195 if (Results.includeCodePatterns()) {
4203 Results.AddResult(Builder.TakeString());
4216 if (Results.includeCodePatterns()) {
4224 Results.AddResult(Builder.TakeString());
4226 Results.ExitScope();
4229 AddPrettyFunctionResults(getLangOpts(), Results);
4232 AddMacroResults(PP, Results, false);
4234 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
4235 Results.data(),Results.size());
4259 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4262 Results.EnterNewScope();
4267 if (!Results.empty() && NNS->isDependent())
4268 Results.AddResult("template");
4276 MaybeAddOverrideCalls(*this, Ctx, Results);
4277 Results.ExitScope();
4279 CodeCompletionDeclConsumer Consumer(Results, CurContext);
4283 Results.getCompletionContext(),
4284 Results.data(),Results.size());
4291 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4295 Results.EnterNewScope();
4299 Results.AddResult(CodeCompletionResult("namespace"));
4303 CodeCompletionDeclConsumer Consumer(Results, CurContext);
4306 Results.ExitScope();
4310 Results.data(),Results.size());
4319 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4323 Results.EnterNewScope();
4324 CodeCompletionDeclConsumer Consumer(Results, CurContext);
4327 Results.ExitScope();
4330 Results.data(),Results.size());
4344 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4363 // namespace to the list of results.
4364 Results.EnterNewScope();
4369 Results.AddResult(CodeCompletionResult(
4370 NS->second, Results.getBasePriority(NS->second),
4373 Results.ExitScope();
4377 Results.getCompletionContext(),
4378 Results.data(),Results.size());
4386 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4390 CodeCompletionDeclConsumer Consumer(Results, CurContext);
4394 Results.getCompletionContext(),
4395 Results.data(),Results.size());
4403 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4407 Results.EnterNewScope();
4412 Results.AddResult(Result(Spelling));
4416 Results.allowNestedNameSpecifiers();
4417 CodeCompletionDeclConsumer Consumer(Results, CurContext);
4422 AddTypeSpecifierResults(getLangOpts(), Results);
4423 Results.ExitScope();
4427 Results.data(),Results.size());
4442 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4445 Results.EnterNewScope();
4460 CodeCompletionBuilder Builder(Results.getAllocator(),
4461 Results.getCodeCompletionTUInfo());
4477 Results.getAllocator().CopyString(
4482 Results.AddResult(CodeCompletionResult(Builder.TakeString(),
4506 Results.AddResult(CodeCompletionResult(Builder.TakeString(),
4531 Results.AddResult(CodeCompletionResult(Builder.TakeString(),
4539 Results.ExitScope();
4541 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
4542 Results.data(), Results.size());
4556 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4559 Results.EnterNewScope();
4583 Results.AddResult(CodeCompletionResult(Var, CCP_LocalDeclaration),
4590 addThisCompletion(*this, Results);
4592 Results.ExitScope();
4594 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
4595 Results.data(), Results.size());
4603 ResultBuilder &Results,
4607 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"end")));
4609 CodeCompletionBuilder Builder(Results.getAllocator(),
4610 Results.getCodeCompletionTUInfo());
4616 Results.AddResult(Result(Builder.TakeString()));
4622 Results.AddResult(Result(Builder.TakeString()));
4627 ResultBuilder &Results,
4632 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"end")));
4636 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"property")));
4639 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"required")));
4642 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"optional")));
4646 static void AddObjCTopLevelResults(ResultBuilder &Results, bool NeedAt) {
4648 CodeCompletionBuilder Builder(Results.getAllocator(),
4649 Results.getCodeCompletionTUInfo());
4655 Results.AddResult(Result(Builder.TakeString()));
4657 if (Results.includeCodePatterns()) {
4664 Results.AddResult(Result(Builder.TakeString()));
4670 Results.AddResult(Result(Builder.TakeString()));
4676 Results.AddResult(Result(Builder.TakeString()));
4685 Results.AddResult(Result(Builder.TakeString()));
4687 if (Results.getSema().getLangOpts().Modules) {
4692 Results.AddResult(Result(Builder.TakeString()));
4697 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4700 Results.EnterNewScope();
4702 AddObjCImplementationResults(getLangOpts(), Results, false);
4704 AddObjCInterfaceResults(getLangOpts(), Results, false);
4706 AddObjCTopLevelResults(Results, false);
4707 Results.ExitScope();
4710 Results.data(),Results.size());
4713 static void AddObjCExpressionResults(ResultBuilder &Results, bool NeedAt) {
4715 CodeCompletionBuilder Builder(Results.getAllocator(),
4716 Results.getCodeCompletionTUInfo());
4720 if (Results.getSema().getLangOpts().CPlusPlus ||
4721 Results.getSema().getLangOpts().ConstStrings)
4728 Results.AddResult(Result(Builder.TakeString()));
4736 Results.AddResult(Result(Builder.TakeString()));
4744 Results.AddResult(Result(Builder.TakeString()));
4751 Results.AddResult(Result(Builder.TakeString()));
4758 Results.AddResult(Result(Builder.TakeString()));
4768 Results.AddResult(Result(Builder.TakeString()));
4775 Results.AddResult(Result(Builder.TakeString()));
4778 static void AddObjCStatementResults(ResultBuilder &Results, bool NeedAt) {
4780 CodeCompletionBuilder Builder(Results.getAllocator(),
4781 Results.getCodeCompletionTUInfo());
4783 if (Results.includeCodePatterns()) {
4801 Results.AddResult(Result(Builder.TakeString()));
4808 Results.AddResult(Result(Builder.TakeString()));
4810 if (Results.includeCodePatterns()) {
4820 Results.AddResult(Result(Builder.TakeString()));
4825 ResultBuilder &Results,
4828 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"private")));
4829 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"protected")));
4830 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"public")));
4832 Results.AddResult(Result(OBJC_AT_KEYWORD_NAME(NeedAt,"package")));
4836 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4839 Results.EnterNewScope();
4840 AddObjCVisibilityResults(getLangOpts(), Results, false);
4841 Results.ExitScope();
4844 Results.data(),Results.size());
4848 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4851 Results.EnterNewScope();
4852 AddObjCStatementResults(Results, false);
4853 AddObjCExpressionResults(Results, false);
4854 Results.ExitScope();
4857 Results.data(),Results.size());
4861 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4864 Results.EnterNewScope();
4865 AddObjCExpressionResults(Results, false);
4866 Results.ExitScope();
4869 Results.data(),Results.size());
4911 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
4914 Results.EnterNewScope();
4916 Results.AddResult(CodeCompletionResult("readonly"));
4918 Results.AddResult(CodeCompletionResult("assign"));
4921 Results.AddResult(CodeCompletionResult("unsafe_unretained"));
4923 Results.AddResult(CodeCompletionResult("readwrite"));
4925 Results.AddResult(CodeCompletionResult("retain"));
4927 Results.AddResult(CodeCompletionResult("strong"));
4929 Results.AddResult(CodeCompletionResult("copy"));
4931 Results.AddResult(CodeCompletionResult("nonatomic"));
4933 Results.AddResult(CodeCompletionResult("atomic"));
4938 Results.AddResult(CodeCompletionResult("weak"));
4941 CodeCompletionBuilder Setter(Results.getAllocator(),
4942 Results.getCodeCompletionTUInfo());
4946 Results.AddResult(CodeCompletionResult(Setter.TakeString()));
4949 CodeCompletionBuilder Getter(Results.getAllocator(),
4950 Results.getCodeCompletionTUInfo());
4954 Results.AddResult(CodeCompletionResult(Getter.TakeString()));
4957 Results.AddResult(CodeCompletionResult("nonnull"));
4958 Results.AddResult(CodeCompletionResult("nullable"));
4959 Results.AddResult(CodeCompletionResult("null_unspecified"));
4960 Results.AddResult(CodeCompletionResult("null_resettable"));
4962 Results.ExitScope();
4965 Results.data(),Results.size());
5015 /// container to the set of results.
5033 /// \param Results the structure into which we'll add results.
5041 ResultBuilder &Results,
5060 Result R = Result(M, Results.getBasePriority(M), nullptr);
5065 Results.MaybeAddResult(R, CurContext);
5078 CurContext, Selectors, AllowSameLength, Results, false);
5088 CurContext, Selectors, AllowSameLength, Results, false);
5094 Results, InOriginalClass);
5104 Results, false);
5110 Results, InOriginalClass);
5117 AllowSameLength, Results, false);
5123 Results, InOriginalClass);
5140 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5143 Results.EnterNewScope();
5147 /*AllowSameLength=*/true, Results);
5148 Results.ExitScope();
5151 Results.data(),Results.size());
5168 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5171 Results.EnterNewScope();
5175 Selectors, /*AllowSameLength=*/true, Results);
5177 Results.ExitScope();
5180 Results.data(),Results.size());
5185 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5188 Results.EnterNewScope();
5194 Results.AddResult("in");
5195 Results.AddResult("inout");
5200 Results.AddResult("out");
5202 Results.AddResult("inout");
5207 Results.AddResult("bycopy");
5208 Results.AddResult("byref");
5209 Results.AddResult("oneway");
5212 Results.AddResult("nonnull");
5213 Results.AddResult("nullable");
5214 Results.AddResult("null_unspecified");
5223 CodeCompletionBuilder Builder(Results.getAllocator(),
5224 Results.getCodeCompletionTUInfo(),
5234 Results.AddResult(CodeCompletionResult(Builder.TakeString()));
5239 Results.AddResult(CodeCompletionResult("instancetype"));
5243 AddOrdinaryNameResults(PCC_Type, S, *this, Results);
5244 Results.ExitScope();
5247 Results.setFilter(&ResultBuilder::IsOrdinaryNonValueName);
5248 CodeCompletionDeclConsumer Consumer(Results, CurContext);
5253 AddMacroResults(PP, Results, false);
5257 Results.data(), Results.size());
5343 /// \param Results The set of results to augment.
5350 ResultBuilder &Results) {
5399 CodeCompletionBuilder Builder(Results.getAllocator(),
5400 Results.getCodeCompletionTUInfo());
5404 Results.getCompletionContext().getBaseType(),
5447 Results.AddResult(CodeCompletionResult(Builder.TakeString(), SuperMethod,
5454 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5461 CodeCompletionDeclConsumer Consumer(Results, CurContext);
5462 Results.EnterNewScope();
5471 Results.AddResult(Result("super"));
5473 AddSuperSendCompletion(*this, /*NeedSuperKeyword=*/true, None, Results);
5477 addThisCompletion(*this, Results);
5479 Results.ExitScope();
5482 AddMacroResults(PP, Results, false);
5483 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
5484 Results.data(), Results.size());
5551 /// \brief Given a set of code-completion results for the argument of a message
5553 static QualType getPreferredArgumentTypeForMessageSend(ResultBuilder &Results,
5556 ASTContext &Context = Results.getSema().Context;
5560 Result *ResultsData = Results.data();
5561 for (unsigned I = 0, N = Results.size(); I != N; ++I) {
5590 ResultBuilder &Results) {
5605 Results.EnterNewScope();
5611 = AddSuperSendCompletion(SemaRef, false, SelIdents, Results))
5612 Results.Ignore(SuperMethod);
5618 Results.setPreferredSelector(CurMethod->getSelector());
5624 Results);
5652 Results.getBasePriority(MethList->getMethod()), nullptr);
5655 Results.MaybeAddResult(R, SemaRef.CurContext);
5660 Results.ExitScope();
5670 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5676 AtArgumentExpression, IsSuper, Results);
5682 // our preferred type, improving completion results.
5684 QualType PreferredType = getPreferredArgumentTypeForMessageSend(Results,
5694 Results.getCompletionContext(),
5695 Results.data(), Results.size());
5742 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5747 Results.EnterNewScope();
5753 = AddSuperSendCompletion(*this, false, SelIdents, Results))
5754 Results.Ignore(SuperMethod);
5760 Results.setPreferredSelector(CurMethod->getSelector());
5773 CurContext, Selectors, AtArgumentExpression, Results);
5782 Selectors, AtArgumentExpression, Results);
5790 Results);
5795 Selectors, AtArgumentExpression, Results);
5800 // about as code-completion results.
5828 Results.getBasePriority(MethList->getMethod()), nullptr);
5831 Results.MaybeAddResult(R, CurContext);
5835 Results.ExitScope();
5842 // our preferred type, improving completion results.
5844 QualType PreferredType = getPreferredArgumentTypeForMessageSend(Results,
5854 Results.getCompletionContext(),
5855 Results.data(),Results.size());
5889 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5892 Results.EnterNewScope();
5901 CodeCompletionBuilder Builder(Results.getAllocator(),
5902 Results.getCodeCompletionTUInfo());
5906 Results.AddResult(Builder.TakeString());
5924 Results.AddResult(Builder.TakeString());
5926 Results.ExitScope();
5930 Results.data(), Results.size());
5937 ResultBuilder &Results) {
5944 Results.AddResult(Result(Proto, Results.getBasePriority(Proto),nullptr),
5951 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5956 Results.EnterNewScope();
5960 // FIXME: This doesn't work when caching code-completion results.
5964 Results.Ignore(Protocol);
5968 Results);
5970 Results.ExitScope();
5975 Results.data(),Results.size());
5979 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
5984 Results.EnterNewScope();
5988 Results);
5990 Results.ExitScope();
5995 Results.data(),Results.size());
6003 ResultBuilder &Results) {
6011 Results.AddResult(Result(Class, Results.getBasePriority(Class),nullptr),
6017 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6020 Results.EnterNewScope();
6025 false, Results);
6028 Results.ExitScope();
6032 Results.data(),Results.size());
6037 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6040 Results.EnterNewScope();
6046 Results.Ignore(CurClass);
6051 false, Results);
6054 Results.ExitScope();
6058 Results.data(),Results.size());
6062 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6065 Results.EnterNewScope();
6070 true, Results);
6073 Results.ExitScope();
6077 Results.data(),Results.size());
6085 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6100 Results.EnterNewScope();
6105 Results.AddResult(Result(Category, Results.getBasePriority(Category),
6108 Results.ExitScope();
6112 Results.data(),Results.size());
6129 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6137 Results.EnterNewScope();
6143 Results.AddResult(Result(Cat, Results.getBasePriority(Cat), nullptr),
6150 Results.ExitScope();
6154 Results.data(),Results.size());
6159 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6175 Results.Ignore(PropertyImpl->getPropertyDecl());
6179 Results.EnterNewScope();
6184 AddedProperties, Results);
6189 AddedProperties, Results);
6190 Results.ExitScope();
6194 Results.data(),Results.size());
6200 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
6230 Results.setPreferredType(PropertyType);
6235 Results.EnterNewScope();
6245 Results.AddResult(Result(Ivar, Results.getBasePriority(Ivar), nullptr),
6256 // advantage over other results whose names don't match so closely.
6257 if (Results.size() &&
6258 Results.data()[Results.size() - 1].Kind
6260 Results.data()[Results.size() - 1].Declaration == Ivar)
6261 Results.data()[Results.size() - 1].Priority--;
6271 CodeCompletionAllocator &Allocator = Results.getAllocator();
6272 CodeCompletionBuilder Builder(Allocator, Results.getCodeCompletionTUInfo(),
6279 Results.AddResult(Result(Builder.TakeString(), Priority,
6283 Results.ExitScope();
6287 Results.data(),Results.size());
6419 ResultBuilder &Results) {
6424 PrintingPolicy Policy = getCompletionPrintingPolicy(Results.getSema());
6428 CodeCompletionAllocator &Allocator = Results.getAllocator();
6429 CodeCompletionBuilder Builder(Allocator, Results.getCodeCompletionTUInfo());
6472 Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
6496 Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
6519 Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
6568 Results.AddResult(Result(Builder.TakeString(),
6594 Results.AddResult(Result(Builder.TakeString(), IndexedGetterPriority,
6621 Results.AddResult(Result(Builder.TakeString(), IndexedGetterPriority,
6653 Results.AddResult(Result(Builder.TakeString(), IndexedGetterPriority,
6687 Results.AddResult(Result(Builder.TakeString(), IndexedSetterPriority,
6718 Results.AddResult(Result(Builder.TakeString(), IndexedSetterPriority,
6740 Results.AddResult(Result(Builder.TakeString(), IndexedSetterPriority,
6762 Results.AddResult(Result(Builder.TakeString(), IndexedSetterPriority,
6794 Results.AddResult(Result(Builder.TakeString(), IndexedSetterPriority,
6827 Results.AddResult(Result(Builder.TakeString(), IndexedSetterPriority,
6851 Results.AddResult(Result(Builder.TakeString(), UnorderedGetterPriority,
6881 Results.AddResult(Result(Builder.TakeString(), UnorderedGetterPriority,
6905 Results.AddResult(Result(Builder.TakeString(), UnorderedSetterPriority,
6926 Results.AddResult(Result(Builder.TakeString(), UnorderedSetterPriority,
6949 Results.AddResult(Result(Builder.TakeString(), UnorderedSetterPriority,
6970 Results.AddResult(Result(Builder.TakeString(), UnorderedSetterPriority,
6991 Results.AddResult(Result(Builder.TakeString(), UnorderedSetterPriority,
7016 Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
7038 Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
7089 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
7092 Results.EnterNewScope();
7098 CodeCompletionBuilder Builder(Results.getAllocator(),
7099 Results.getCodeCompletionTUInfo());
7156 if (IsInImplementation && Results.includeCodePatterns()) {
7178 Results.AddResult(Result(Builder.TakeString(), Method, Priority));
7206 KnownSelectors, Results);
7209 Results.ExitScope();
7213 Results.data(),Results.size());
7236 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
7241 Results.setPreferredType(GetTypeFromParser(ReturnTy).getNonReferenceType());
7243 Results.EnterNewScope();
7262 CodeCompletionBuilder Builder(Results.getAllocator(),
7263 Results.getCodeCompletionTUInfo());
7266 Results.AddResult(Builder.TakeString());
7274 Results.getBasePriority(MethList->getMethod()), nullptr);
7278 Results.MaybeAddResult(R, CurContext);
7282 Results.ExitScope();
7285 Results.data(),Results.size());
7289 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
7292 Results.EnterNewScope();
7295 CodeCompletionBuilder Builder(Results.getAllocator(),
7296 Results.getCodeCompletionTUInfo());
7300 Results.AddResult(Builder.TakeString());
7306 Results.AddResult(Builder.TakeString());
7312 Results.AddResult(Builder.TakeString());
7319 Results.AddResult(Builder.TakeString());
7323 Results.AddResult(Builder.TakeString());
7327 Results.AddResult(Builder.TakeString());
7336 Results.AddResult(Builder.TakeString());
7344 Results.AddResult(Builder.TakeString());
7350 Results.AddResult(Builder.TakeString());
7359 Results.AddResult(Builder.TakeString());
7365 Results.AddResult(Builder.TakeString());
7371 Results.AddResult(Builder.TakeString());
7381 Results.AddResult(Builder.TakeString());
7387 Results.AddResult(Builder.TakeString());
7393 Results.AddResult(Builder.TakeString());
7402 Results.AddResult(Builder.TakeString());
7410 Results.AddResult(Builder.TakeString());
7419 Results.AddResult(Builder.TakeString());
7427 Results.AddResult(Builder.TakeString());
7433 Results.AddResult(Builder.TakeString());
7440 Results.ExitScope();
7444 Results.data(), Results.size());
7454 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
7460 CodeCompletionBuilder Builder(Results.getAllocator(),
7461 Results.getCodeCompletionTUInfo());
7462 Results.EnterNewScope();
7468 Results.AddResult(CodeCompletionResult(Builder.TakeString(),
7472 Results.ExitScope();
7477 HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(),
7478 Results.data(), Results.size());
7482 ResultBuilder Results(*this, CodeCompleter->getAllocator(),
7487 AddMacroResults(PP, Results, true);
7490 Results.EnterNewScope();
7491 CodeCompletionBuilder Builder(Results.getAllocator(),
7492 Results.getCodeCompletionTUInfo());
7498 Results.AddResult(Builder.TakeString());
7499 Results.ExitScope();
7503 Results.data(), Results.size());
7510 // FIXME: In the future, we could provide "overload" results, much like we
7525 SmallVectorImpl<CodeCompletionResult> &Results) {
7538 Results.clear();
7539 Results.insert(Results.end(),