1. 29 Jun, 2015 2 commits
    • Orgad Shaneh's avatar
      C++: Ignore explicit template instantiations · a77e3280
      Orgad Shaneh authored
      Defined in section 14.7.2 of the standard.
      
      Fixes completion for std::string.
      
      The following explicit instantiation appears in bits/basic_string.tcc:
        extern template class basic_string<char>;
      
      This is wrongfully considered a specialization for a forward declaration
      (like `template<> class basic_string<char>` is).
      
      Introduce a new Symbol type for explicit instantiations.
      
      Use-case:
      template<class T>
      struct Foo { T bar; };
      
      template class Foo<int>;
      
      void func()
      {
          Foo<int> foo;
          foo.bar; // bar not highlighted
      }
      
      Change-Id: I9e35c8c32f6b78fc87b4f4f1fc903b42cfbd2c2b
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      a77e3280
    • Orgad Shaneh's avatar
      C++: Fix resolving of using in enclosing scope · 1faf2bd1
      Orgad Shaneh authored
      Use-case:
      namespace Ns {
      namespace Nested {
      struct Foo
      {
          void func();
          int bar;
      };
      }
      }
      
      using namespace Ns::Nested;
      
      namespace Ns
      {
      void Foo::func()
      {
          bar; // bar not highlighted
      }
      }
      
      Change-Id: I6e667d63eb40511d65532c4d6d317aa4028a87a4
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      1faf2bd1
  2. 09 Jun, 2015 5 commits
  3. 04 Jun, 2015 2 commits
  4. 01 Jun, 2015 2 commits
  5. 22 May, 2015 2 commits
  6. 21 May, 2015 1 commit
  7. 20 May, 2015 2 commits
  8. 15 May, 2015 2 commits
  9. 05 May, 2015 1 commit
  10. 04 May, 2015 1 commit
  11. 28 Apr, 2015 2 commits
    • Orgad Shaneh's avatar
      C++: Fix instantiation of typedefed type in block · 6a9bd957
      Orgad Shaneh authored
      Use-case:
      template<typename T>
      struct Temp { T t; };
      
      struct Foo { int bar; };
      
      void func()
      {
          typedef Foo *pointer;
          Temp<pointer> temp;
          temp.t->bar; // bar not highlighted
      }
      
      Task-number: QTCREATORBUG-14351
      Change-Id: I13ca6145a0069bbc7a7207f69b43011c69ec72c7
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      6a9bd957
    • 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
  12. 27 Apr, 2015 2 commits
  13. 23 Apr, 2015 2 commits
  14. 21 Apr, 2015 1 commit
  15. 20 Apr, 2015 3 commits
  16. 18 Apr, 2015 1 commit
  17. 13 Apr, 2015 2 commits
  18. 02 Apr, 2015 1 commit
  19. 26 Mar, 2015 1 commit
  20. 13 Mar, 2015 1 commit
  21. 05 Mar, 2015 1 commit
  22. 25 Feb, 2015 1 commit
  23. 23 Jan, 2015 1 commit
  24. 16 Jan, 2015 1 commit