1. 12 Nov, 2015 1 commit
    • Orgad Shaneh's avatar
      C++: Limit template instantiation depth · 0bcddcd0
      Orgad Shaneh authored
      
      
      A recursive template generates infinite expansions.
      
      Consider the following example:
      
      template <class R1>
      struct Base
      {
      };
      
      template<typename R>
      struct Derived :
        Base<
          typename Derived<typename Base<R>::type>::type,
          typename Derived<typename Base<R>::type>::type
        >::type
      {};
      
      R is instantiated as Base<R>::type, which causes another
      instantiation of R into Base<Base<R>> etc...
      
      This is not a solution, but a workaround.
      
      Task-number: QTCREATORBUG-15141
      Change-Id: Ib04f70275e07919e2cb6c7fb61a2045bd52f4a7d
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      0bcddcd0
  2. 09 Oct, 2015 1 commit
  3. 03 Oct, 2015 1 commit
    • 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
  4. 10 Sep, 2015 1 commit
  5. 02 Sep, 2015 1 commit
  6. 21 Aug, 2015 1 commit
  7. 03 Aug, 2015 2 commits
  8. 31 Jul, 2015 1 commit
    • Nikolai Kosjar's avatar
      C++: Do not let ASTPath calculate line/column for generated tokens · 892cb154
      Nikolai Kosjar authored
      
      
      ASTPath uses TranslationUnit::getPosition(), which returns reasonable
      results for:
      
          1. non-expanded tokens
          2. expanded but not generated tokens
      
      The expanded *and* generated tokens case is not handled since there is
      no reasonable mapping from generated tokens to a continuous line/column
      information. Consider:
      
          #define DECLARE_FOO int foo; // Multiple generated tokens
          DECLARE_FOO // ...can be mapped to this line, but to which columns?
      
      Since the result where not valid for the expanded and generated case,
      ASTPath took the wrong branches. Avoid this by skipping generated
      tokens.
      
      Change-Id: I33a2e0f62917f87d691b19feaeef67b09ea8d563
      Task-number: QTCREATORBUG-13386
      Task-number: QTCREATORBUG-13390
      Reviewed-by: default avatarJoerg Bornemann <joerg.bornemann@theqtcompany.com>
      Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
      892cb154
  9. 03 Jul, 2015 1 commit
  10. 01 Jul, 2015 1 commit
    • Orgad Shaneh's avatar
      C++: Cleanup LookupContext · 7bed5cd3
      Orgad Shaneh authored
      
      
      Since the cache is now more reliable, some workarounds and optimizations
      in the instantiation process are not needed anymore.
      
      Also avoid instantiation of base classes when expandTemplates is
      disabled.
      
      As a bonus, we now resolve decltype of template function for a type that is not
      referenced anywhere but in the decltype.
      
      Change-Id: Idf42ba7280992db477c9aa62bb1815b27174594d
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      7bed5cd3
  11. 29 Jun, 2015 3 commits
  12. 22 Jun, 2015 1 commit
  13. 15 Jun, 2015 1 commit
    • Jochen Becher's avatar
      Introduce dragging for all explorer nodes. · 431b25ad
      Jochen Becher authored
      
      
      Extend drop support with variant values. A drop may be a file drop or a
      value drop or both.
      
      Rename Utils::FileDropSupport to Utils::DropSupport and add methods to
      add not only files but any QVariant value to the mime data. Project
      explorer adds dragged nodes (which will be needed for future ModelEditor
      plugin).
      
      Change-Id: I799542c60fdecb3e64af0d3ba47b6caa9adbcfd7
      Reviewed-by: default avatarEike Ziller <eike.ziller@theqtcompany.com>
      431b25ad
  14. 09 Jun, 2015 6 commits
  15. 04 Jun, 2015 2 commits
  16. 02 Jun, 2015 2 commits
  17. 01 Jun, 2015 2 commits
  18. 22 May, 2015 2 commits
  19. 21 May, 2015 1 commit
  20. 20 May, 2015 3 commits
  21. 19 May, 2015 1 commit
  22. 15 May, 2015 3 commits
  23. 12 May, 2015 1 commit
  24. 05 May, 2015 1 commit