1 // RUN: rm -rf %t 2 // RUN: %clang_cc1 -std=c++11 -nostdsysteminc -I%S/Inputs/PR28812 -verify %s 3 // RUN: %clang_cc1 -std=c++11 -nostdsysteminc -fmodules -fimplicit-module-maps \ 4 // RUN: -fmodules-cache-path=%t -I%S/Inputs/PR28812 -verify %s 5 6 template <typename> struct VarStreamArrayIterator; 7 template <typename ValueType> 8 struct VarStreamArray { 9 typedef VarStreamArrayIterator<ValueType> Iterator; beginVarStreamArray10 Iterator begin() { return Iterator(*this); } 11 }; 12 13 #include "Textual.h" 14 15 #include "a.h" 16 #include "b.h" 17 18 VarStreamArray<int> a; 19 auto b = a.begin(); 20 21 // expected-no-diagnostics 22 23