Skip to content
Snippets Groups Projects
  1. May 22, 2015
  2. May 20, 2015
  3. May 15, 2015
  4. May 05, 2015
  5. Apr 28, 2015
    • Orgad Shaneh's avatar
      C++: Fix specialization resolution for nested types · ad4cb444
      Orgad Shaneh authored
      
      Use-cases:
      
      template<typename T>
      struct Traits { typedef typename T::pointer pointer; };
      
      template<typename _Tp>
      struct Traits<_Tp*> { typedef _Tp *pointer; };
      
      struct Foo { int bar; };
      
      // 1
      template<typename T>
      class Temp
      {
      protected:
         typedef Traits<T> TraitsT;
      
      public:
         typedef typename TraitsT::pointer pointer;
         pointer p;
      };
      
      void func()
      {
         Temp<Foo *> t;
         t.p-> // complete
      }
      
      // 2
      class Temp2
      {
      protected:
         typedef Foo *FooPtr;
         typedef Traits<FooPtr> TraitsT;
      
      public:
         typedef typename TraitsT::pointer pointer;
         pointer p;
      };
      
      void func2()
      {
         Temp2 t;
         t.p-> // complete
      }
      
      Task-number: QTCREATORBUG-14141
      Change-Id: Id3459671117c0c81bcde7c9714b42750634c0225
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      ad4cb444
  6. Apr 24, 2015
  7. Apr 20, 2015
  8. Apr 11, 2015
  9. Feb 26, 2015
  10. Feb 25, 2015
  11. Feb 04, 2015
    • Orgad Shaneh's avatar
      C++: Remove unneeded qualifications · 65e7db42
      Orgad Shaneh authored
      
      Mostly done using the following ruby script:
      Dir.glob('**/*.cpp').each { |file|
        next if file =~ %r{src/shared/qbs|/qmljs/}
        s = File.read(file)
        s.scan(/^using namespace (.*);$/) {
          ns = $1
          t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
            before = $1
            char = $2
            if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
              m
            else
              before + char
            end
          }
          if t != s
            puts file
            File.open(file, 'w').write(t)
          end
        }
      }
      
      Change-Id: I6fbe13ddc1485efe95c3156097bf41d90c0febac
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      65e7db42
  12. Jan 16, 2015
  13. Nov 07, 2014
    • Przemyslaw Gorszkowski's avatar
      C++: fix follow symbol for const arguments · 0ff1cba7
      Przemyslaw Gorszkowski authored
      
      Fixed case:
      
      class Foo {};
      void foo(int v) {}
      void foo(const char *v) {}
      void foo(const Foo &v) {}
      void foo(char v) {}
      
      void test()
      {
          foo(5);
          foo("hoo");
          foo('a');
          char *var = "var";
          foo(var); // Jumps to last override, regardless of its type
          Foo f;
          foo(f); // Jumps to last override
      }
      
      Task-number: QTCREATORBUG-13128
      Change-Id: I038553bb3bdbe1c300fc01573c14b6fedf0320cd
      Reviewed-by: default avatarOrgad Shaneh <orgads@gmail.com>
      0ff1cba7
  14. Oct 09, 2014
  15. Sep 12, 2014
  16. Sep 11, 2014
  17. Sep 09, 2014
  18. Aug 29, 2014
  19. Aug 28, 2014
  20. Aug 18, 2014
  21. Jul 17, 2014
  22. May 28, 2014
  23. May 23, 2014
  24. Apr 07, 2014
  25. Apr 04, 2014
  26. Mar 25, 2014
  27. Feb 27, 2014
  28. Jan 08, 2014
  29. Nov 14, 2013
  30. Oct 18, 2013
  31. Oct 17, 2013
    • Przemyslaw Gorszkowski's avatar
      C++: fix endless loop during template instantiation · 5be56c07
      Przemyslaw Gorszkowski authored
      
      This is the first phase of fixing bug QTCREATORBUG-10320.
      This change resolves typedefs of template parameters(and resolves
      problem with endless loop).
      
      The next step will be matching appropriate template specialization
      (this is needed to solve problem with missing code completion).
      
      Missing matching: template specialization with the same parameters,
      e.g.:
      template <class T1, class T2, class T3>
      class T
      {
      };
      
      template <class T1, class T2>
      class T<T1, T2, T2>
      {
      };
      
      Task-number: QTCREATORBUG-10320
      Change-Id: Icb6b539c021b2a67a66db9011a2e627f7d96526b
      Reviewed-by: default avatarPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      5be56c07
  32. Sep 17, 2013
  33. Aug 16, 2013
  34. Aug 05, 2013
    • Przemyslaw Gorszkowski's avatar
      C++: fix auto completion for template parameters · bfbf93e6
      Przemyslaw Gorszkowski authored
      
      Fix auto completion for the case when template parameter should be
      found somewhere of scope of template instantiation declaration.
      Example:
      struct A
      {
          void foo();
          struct B
          {
              int b;
          };
      };
      
      template<typename T>
      struct Template
      {
          T* get() { return 0; }
          T t;
      };
      
      void A::foo()
      {
          Template<B> templ;
          templ.get()->//no autocompletion
          templ.t.//no autocompletion
      }
      
      Task-number: QTCREATORBUG-8852
      Task-number: QTCREATORBUG-9169
      Change-Id: I56b40776e66740f995ae6fc5d69e3c50139a3af2
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      bfbf93e6
  35. Jul 17, 2013
  36. Jul 12, 2013
Loading