Browse Source

IWYU: Add mappings for std::enable_if on chrono durations

IWYU incorrectly classifies this internal STL type as not internal, and
suggests including `<type_traits>` for it.  Work around the problem by
mapping the offending names to a file that we always include.

See include-what-you-use issue 434.
Brad King 8 years ago
parent
commit
923b8fadd5

+ 0 - 1
Source/CTest/cmCTestBuildHandler.cxx

@@ -17,7 +17,6 @@
 #include <set>
 #include <stdlib.h>
 #include <string.h>
-#include <type_traits>
 
 static const char* cmCTestErrorMatches[] = {
   "^[Bb]us [Ee]rror",

+ 0 - 1
Source/CTest/cmCTestConfigureHandler.cxx

@@ -9,7 +9,6 @@
 #include <chrono>
 #include <ostream>
 #include <string>
-#include <type_traits>
 
 cmCTestConfigureHandler::cmCTestConfigureHandler()
 {

+ 0 - 1
Source/CTest/cmCTestCoverageHandler.cxx

@@ -27,7 +27,6 @@
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>
-#include <type_traits>
 #include <utility>
 
 class cmMakefile;

+ 0 - 1
Source/CTest/cmCTestMemCheckHandler.cxx

@@ -14,7 +14,6 @@
 #include <iostream>
 #include <sstream>
 #include <string.h>
-#include <type_traits>
 
 struct CatToErrorType
 {

+ 0 - 1
Source/CTest/cmCTestScriptHandler.cxx

@@ -10,7 +10,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <type_traits>
 #include <utility>
 
 #include "cmCTest.h"

+ 0 - 1
Source/CTest/cmCTestTestHandler.cxx

@@ -16,7 +16,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
-#include <type_traits>
 
 #include "cmAlgorithms.h"
 #include "cmCTest.h"

+ 0 - 1
Source/CTest/cmCTestUpdateHandler.cxx

@@ -20,7 +20,6 @@
 #include <chrono>
 #include <memory> // IWYU pragma: keep
 #include <sstream>
-#include <type_traits>
 
 static const char* cmCTestUpdateHandlerUpdateStrings[] = {
   "Unknown", "CVS", "SVN", "BZR", "GIT", "HG", "P4"

+ 0 - 1
Source/CTest/cmProcess.cxx

@@ -4,7 +4,6 @@
 
 #include "cmProcessOutput.h"
 #include <iostream>
-#include <type_traits>
 
 cmProcess::cmProcess()
 {

+ 4 - 0
Utilities/IWYU/mapping.imp

@@ -63,6 +63,10 @@
   { symbol: [ "std::__decay_and_strip<const std::basic_string<char> &>::__type", private, "\"cmConfigure.h\"", public ] },
   { symbol: [ "std::__decay_and_strip<cmFindPackageCommand::PathLabel &>::__type", private, "\"cmConfigure.h\"", public ] },
   { symbol: [ "std::__decay_and_strip<__gnu_cxx::__normal_iterator<const cmCTestTestHandler::cmCTestTestProperties *, std::vector<cmCTestTestHandler::cmCTestTestProperties, std::allocator<cmCTestTestHandler::cmCTestTestProperties> > > &>::__type", private, "\"cmConfigure.h\"", public ] },
+  { symbol: [ "std::__success_type<std::chrono::duration<double, std::ratio<1, 1> > >::type", private, "\"cmConfigure.h\"", public ] },
+  { symbol: [ "std::enable_if<true, std::chrono::duration<long, std::ratio<1, 1> > >::type", private, "\"cmConfigure.h\"", public ] },
+  { symbol: [ "std::enable_if<true, std::chrono::duration<long, std::ratio<60, 1> > >::type", private, "\"cmConfigure.h\"", public ] },
+  { symbol: [ "std::enable_if<true, std::chrono::duration<long, std::ratio<1, 1000> > >::type", private, "\"cmConfigure.h\"", public ] },
 
   # KWIML
   { include: [ "<stdint.h>", public, "\"cm_kwiml.h\"", public ] },