yvvan added inline comments.

================
Comment at: lib/Sema/SemaCodeComplete.cpp:2453
     std::string PlaceholderStr = FormatFunctionParameter(Policy, Param);
+    if (Param->hasDefaultArg() && PlaceholderStr.find("=") == 
std::string::npos) {
+        std::string DefaultValue =
----------------
klimek wrote:
> yvvan wrote:
> > klimek wrote:
> > > Why the check for = in the PlaceholderStr?
> > Not to add default value twice. If there's already "=" in placeholder 
> > string that means we've already added it in FormatFunctionParameter call
> In which cases would the default value not be added in 
> FormatFunctionParameter if there is one, and need to be added here?
If Param->evaluateValue() can evaluate it it will set the default value in 
FormatFunctionParameter (that means it's a primitive type like "void func(int i 
= 0)").
In case it's some kind of non-primitive type like "void func(Foo foo = Foo(0, 
0))" it will not be evaluated and we can use here the source manager to get the 
default value string. In this example it will be Foo(0, 0).


https://reviews.llvm.org/D33644



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to