> Guillaume, I decided not to include the test you suggested since it fails, 
but the reason is not the the inline problem because if I don't use macros it 
works just fine, there's a test in iterator.cpp for std::vector. I'll log 
another bug for that.

  I don't see `USE_INLINE_NAMESPACE=1` in //iterator.cpp//, so I don't think it 
tests the bug.

  What about this test?

    // RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
    // RUN: cpp11-migrate -use-auto %t.cpp -- --std=c++11 -I %S/Inputs
    // RUN: FileCheck -input-file=%t.cpp %s

    #define USE_INLINE_NAMESPACE 1

    #define CONTAINER vector
    #define USE_INNER_CLASS_ITERATORS 1
    #include "test_std_container.h"
    #undef USE_INNER_CLASS_ITERATORS
    #undef CONTAINER

    void f() {
      using namespace std;

      vector<int> std_vec;
      vector<int>::iterator I = std_vec.begin();
      // CHECK: auto I = std_vec.begin();
    }


  > As for the matchers, hasStdContainerName and isFromStdNamespace can be 
combined but I think it is a better idea to have them separated. What do you 
think?

  I think so too. Something similar will be needed for some future matchers 
dealing with STL types, so I IMHO if `isFromStdNamespace()` doesn't fit we 
should change it instead of re-implementing the logic.

  Apart from the test case it looks good to me.


================
Comment at: cpp11-migrate/UseAuto/UseAutoMatchers.cpp:237
@@ -210,3 +236,3 @@
                ),
                hasPrefix(
                  specifiesNamespace(hasName("std"))
----------------
I'm not sure if this part is still needed but I don't think it hurts either.


http://llvm-reviews.chandlerc.com/D1116
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to