• Claus Steuer's avatar
    C++: Support noexcept operator · 158b07c9
    Claus Steuer authored
    The code model failed to parse the noexcept operator which is often
    used in noexcept specifiers, e.g.: "void f() noexcept(noexcept(g()));"
    Consequently some c++11 headers such as unordered_map, array
    and unordered_set could not be parsed and no code completition was
    available. I have created the NoExceptOperatorExpressionAST class
    which is created whenever a noexcept token is found in an
    expression with operator precedence. The noExcept test case
    in the cplusplus/cxx11 test now contains a function that
    uses the noexcept operator.
    
    Fixed noexcept operator parsing
    
    Added the test requested by Sergey Shambir, which then revealed that
    i had not implemeneted the noexpect operator parsing according to the
    c++ specification.
    As stated here http://cpp0x.centaur.ath.cx/expr.unary.noexcept.html
    the noexcept operator is a unary-expression that contains an
    expression (and not a constant-expression). This should now be fixed.
    
    Change-Id: Id4a99a43b660bd83e7680274491d99a698b57094
    Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
    158b07c9
Parser.h 15.7 KB