ADT: Explode include/llvm/ADT/{ilist,ilist_node}.h, NFC
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 30 Aug 2016 01:37:58 +0000 (01:37 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 30 Aug 2016 01:37:58 +0000 (01:37 +0000)
commit79185d80dc8affac84c7bbb0ea65d71720273277
treeba002db649a30e794c97ffde981c41c26ce0ad8f
parent4d22e4fcb92cf1f3af8fe0246694fa572971fd22
ADT: Explode include/llvm/ADT/{ilist,ilist_node}.h, NFC

I'm working on a lower-level intrusive list that can be used
stand-alone, and splitting the files up a bit will make the code easier
to organize.  Explode the ilist headers in advance to improve blame
lists in the future.
- Move ilist_node_base from ilist_node.h to ilist_node_base.h.
- Move ilist_base from ilist.h to ilist_base.h.
- Move ilist_iterator from ilist.h to ilist_iterator.h.
- Move ilist_node_access from ilist.h to ilist_node.h to support
  ilist_iterator.
- Update unit tests to #include smaller headers.
- Clang-format the moved things.

I noticed in transit that there is a simplify_type specialization for
ilist_iterator.  Since there is no longer an implicit conversion from
ilist<T>::iterator to T*, this doesn't make sense (effectively it's a
form of implicit conversion).  For now I've added a FIXME.

llvm-svn: 280047
llvm/include/llvm/ADT/ilist.h
llvm/include/llvm/ADT/ilist_base.h [new file with mode: 0644]
llvm/include/llvm/ADT/ilist_iterator.h [new file with mode: 0644]
llvm/include/llvm/ADT/ilist_node.h
llvm/include/llvm/ADT/ilist_node_base.h [new file with mode: 0644]
llvm/unittests/ADT/IListBaseTest.cpp
llvm/unittests/ADT/IListNodeBaseTest.cpp