Review Request: Further improve auto-completion in switch statements.

Olivier Jean de Gaalon olivier.jg at gmail.com
Mon Jul 16 09:49:38 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105561/#review15946
-----------------------------------------------------------


Sorry, one of my comments last time probably wasn't clear...


languages/cpp/codecompletion/context.cpp
<http://git.reviewboard.kde.org/r/105561/#comment12574>

    Holy conditional, batman!
    I didn't mean to combine both of return cases :)
    
    I meant something tamer... like:
    -----
    if (ConstantIntegralType::Ptr constantIntegralType = decl->type<ConstantIntegralType>() &&
        TypeUtils::isIntegerType(constantIntegralType.cast<IntegralType()))
      return true;
    
    IntegralType::Ptr integralRetType;
    if (acceptHelperItems && FunctionType::Ptr funType = decl->type<FunctionType>())
        integralRetType = funType->returnType().cast<IntegralType>())
    
    return integralRetType && TypeUtils::isIntegerType(integralRetType);
    -----
    Bonus: you can go back to the previous per-case comments and no fall-through.


- Olivier Jean de Gaalon


On July 16, 2012, 8:37 a.m., Ivan Shapovalov wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105561/
> -----------------------------------------------------------
> 
> (Updated July 16, 2012, 8:37 a.m.)
> 
> 
> Review request for KDevelop and Olivier Jean de Gaalon.
> 
> 
> Description
> -------
> 
> Only compile-time integral constants are valid in "case ..."
> statements, so filter any certainly non-constant completion items.
> 
> This has 2 usability issues (well, not issues, but questionable points):
> 1) We do not filter type-names since they can be used either as scopes
> (SomeType::someConstant) or as ctor-like initializers
> (SomeIntegralTypedef(42)).
> 2) We do not filter integer-returning functions since they
> can be constexpr (thus syntactically usable) but we cannot handle
> constexpr now.
> 
> But, since one rarely would use these items, their match quality
> is forced to zero in order to avoid pollution of "best matches".
> 
> 
> Diffs
> -----
> 
>   languages/cpp/codecompletion/context.h e17fe7c 
>   languages/cpp/codecompletion/context.cpp 34bc728 
>   languages/cpp/tests/test_cppcodecompletion.h f88eb01 
>   languages/cpp/tests/test_cppcodecompletion.cpp eb44618 
> 
> Diff: http://git.reviewboard.kde.org/r/105561/diff/
> 
> 
> Testing
> -------
> 
> Unit-tests have been made aware of the newly-introduced filtering (+ added a new unit-test verifying the filtering itself); usability has been discussed with Olivier Jean de Gaalon.
> 
> 
> Thanks,
> 
> Ivan Shapovalov
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120716/62b904ea/attachment.html>


More information about the KDevelop-devel mailing list