1. 19 Oct, 2013 1 commit
  2. 18 Jun, 2013 1 commit
  3. 15 Mar, 2013 1 commit
  4. 04 Dec, 2012 1 commit
    • Milian Wolff's avatar
      Fix 'auto' type deduction for assignment from "const" or "const&". · 1d0079f4
      Milian Wolff authored
      The type of all a* declarations below is just "int" without any
      reference or const in them, as you can verify by reading this article:
      
      http://cpp-next.com/archive/2011/04/appearing-and-disappearing-consts-in-c/
      
      Alternatively compile and run this simple test app:
      
      ~~~
          #include <iostream>
      
          #define tryAssignAutoType(x) \
          { \
              std::cout << "original: " << x << std::endl; \
              auto a = x; \
              ++a; \
              std::cout << "after: " << x << ", a: " << a << std::endl; \
          }
      
          int main() {
              int i = 0;
              const int& iConstRef = i;
              tryAssignAutoType(iConstRef)
              int& iRef = i;
              tryAssignAutoType(iRef)
              const int iConst = i;
              tryAssignAutoType(iConst)
              int&& iRefRef = std::move(i);
              tryAssignAutoType(iRefRef)
      
              return 0;
          }
      ~~~
      
      The output is:
      
      ~~~
      original: 0
      after: 0, a: 1
      original: 0
      after: 0, a: 1
      original: 0
      after: 0, a: 1
      original: 0
      after: 0, a: 1
      ~~~
      1d0079f4
  5. 27 Oct, 2012 1 commit
  6. 01 Oct, 2012 1 commit
  7. 04 Sep, 2012 1 commit
    • Milian Wolff's avatar
      Fix auto type-deduction for cases like 'auto a(1.1);'. · 81f6c1f0
      Milian Wolff authored
      This won't work for named variables in the paranthesis though,
      since that is detected as a function declaration then by the parser.
      The declaration builder has enough info to sort this out, but
      only sets parameter_is_initializer to true in the declarator, without
      actually creating an initializer AST node that could then be handled
      to figure out the type and such...
      
      CCBUG: 306183
      81f6c1f0
  8. 21 Feb, 2012 1 commit
  9. 22 Jan, 2012 5 commits
  10. 24 Nov, 2011 1 commit
  11. 25 Oct, 2011 1 commit
  12. 17 Oct, 2011 1 commit
    • Milian Wolff's avatar
      c++11 support: initial support for initializer lists · 65db1f2a
      Milian Wolff authored
      This is the first step towards support of initializer lists as per the C++2011 spec in KDevelop. See the new spec or e.g.:
      http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm or http://www.nongnu.org/hcb/#brace-or-equal-initializer for details.
      
      Notes on this patch: It's ugly as hell. And it's so ugly because parts of our parser are hideous. Most importantly there currently is no notion at all of
      member-declaration/declarator at all. The beast that is parseDeclarationInternal is very fragile... I did not want to rewrite the whole parser and rip out
      parseDeclarationInternal yet. But I think we definitely should do this in the future and follow the spec as much as possible, as it makes the code much better to
      understand and extend.
      
      Furthermore it is just the very basics, i.e. stuff like 'int i = {1};' that works now. I'll work on the other uses of the init list once this is in and noone
      complained about regressions.
      
      For now: I had to change the order of "look for simple declaration" vs "look for function definition", as otherwise function definitions followed by an empty
      declaration (";") would be seen as a simple declaration with init list...
      
      I've also found a bug in test_generator where a "()" was missing but apparrently noone ever noticed ;-) This is now done properly though.
      
      General hints on how to achieve this in a cleaner way would be *much* appreciated. But I think the only really clean solution is to rewrite the parser and follow
      the spec. This patch took me more than a month to get into this shape...
      
      REVIEW: 102618
      65db1f2a
  13. 12 Jul, 2011 1 commit
  14. 11 Jul, 2011 2 commits
  15. 09 Jul, 2011 2 commits
  16. 26 Jun, 2011 1 commit
  17. 24 Jun, 2011 1 commit
  18. 02 Jun, 2011 1 commit
  19. 01 Jun, 2011 1 commit
  20. 22 Feb, 2011 1 commit
  21. 01 Sep, 2010 1 commit
  22. 31 Aug, 2010 1 commit
    • Milian Wolff's avatar
      basic support for auto keyword · c12e8b8e
      Milian Wolff authored
      Initializer lists are not yet supported, but otherwise it seems to work quite well
      
      I'm not sure about the rewind for "auto" in the parser, david please take a look,
      I hope you have an idea to do that in a cleaner way?
      
      BUG: 192381
      c12e8b8e
  23. 07 Jul, 2010 1 commit
  24. 26 Jun, 2010 1 commit
  25. 23 Apr, 2010 1 commit
  26. 15 Feb, 2010 1 commit
  27. 14 Feb, 2010 1 commit
  28. 22 Nov, 2009 1 commit
    • David Nolden's avatar
      - Implement the "TopDUContext::SimplifiedDeclarationsAndContexts"... · 79ad3385
      David Nolden authored
      - Implement the "TopDUContext::SimplifiedDeclarationsAndContexts" feature-level in the C++ language support, which allows a simplified processing-level similar to ctags
      - Implement the "TopDUContext::Empty" feature-level which only produces top-context meta-information from the preprocessor (import-structure, macros, etc.)
      - Recursively check whether the required feature-set of child-contexts is satisfied when updating
      79ad3385
  29. 31 Aug, 2009 1 commit
  30. 30 Aug, 2009 1 commit
  31. 15 Aug, 2009 1 commit
  32. 01 Jun, 2009 1 commit
  33. 30 May, 2009 1 commit
    • David Nolden's avatar
      Use the more complex logic from the type-builder to decide whether a... · e3e34b59
      David Nolden authored
      Use the more complex logic from the type-builder to decide whether a declaration is template-dependent from within the normal declaration search mechanism, so it also applies to template parameters.
      This fixes a possible problem with templates when template-dependent template-parameters were given to template-functions, that could be looked up normally within the local class.
      Add test.
      e3e34b59
  34. 22 May, 2009 1 commit