tools/clang/lib/Sema/SemaHLSL.cpp
/// <summary>Constructs a FlattenedTypeIterator for the specified expressions.</summary>
Constructs a FlattenedTypeIterator for the specified expressions.
Constructs a FlattenedTypeIterator for the specified expressions .
FlattenedTypeIterator::FlattenedTypeIterator(SourceLocation loc, MultiExprArg args, HLSLExternalSource& source) :
  m_source(source), m_draining(false), m_springLoaded(false), m_incompleteCount(0), m_typeDepth(0), m_loc(loc)
{
  if (!args.empty()) {
    MultiExprArg::iterator ii = args.begin();
    MultiExprArg::iterator ie = args.end();
    DXASSERT(ii != ie, "otherwise empty() returned an incorrect value");
    m_typeTrackers.push_back(FlattenedTypeIterator::FlattenedTypeTracker(ii, ie));
    if (!considerLeaf()) {
      m_typeTrackers.clear();
    }
  }
}
FlattenedTypeIterator :: FlattenedTypeIterator ( SourceLocation loc , MultiExprArg args , HLSLExternalSource & source ) : m_source ( source ) , m_draining ( false ) , m_springLoaded ( false ) , m_incompleteCount ( 0 ) , m_typeDepth ( 0 ) , m_loc ( loc ) { if ( ! args . empty ( ) ) { MultiExprArg :: iterator ii = args . begin ( ) ; MultiExprArg :: iterator ie = args . end ( ) ; DXASSERT ( ii != ie , " " ) ; m_typeTrackers . push_back ( FlattenedTypeIterator :: FlattenedTypeTracker ( ii , ie ) ) ; if ( ! considerLeaf ( ) ) { m_typeTrackers . clear ( ) ; } } }
<summary>Constructs a FlattenedTypeIterator for the specified expressions.</summary>
<summary > Constructs a FlattenedTypeIterator for the specified expressions . < / summary >