// RUN: rm -rf %t // RUN: %clang_cc1 -std=c++11 -nostdsysteminc -I%S/Inputs/PR28812 -verify %s // RUN: %clang_cc1 -std=c++11 -nostdsysteminc -fmodules -fimplicit-module-maps \ // RUN: -fmodules-cache-path=%t -I%S/Inputs/PR28812 -verify %s template <typename> struct VarStreamArrayIterator; template <typename ValueType> struct VarStreamArray { typedef VarStreamArrayIterator<ValueType> Iterator; Iterator begin() { return Iterator(*this); } }; #include "Textual.h" #include "a.h" #include "b.h" VarStreamArray<int> a; auto b = a.begin(); // expected-no-diagnostics |