Lines Matching +full:non +full:- +full:temporal

1 //===- Redeclarable.h - Base for Decls that can be redeclared --*- C++ -*-====//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
32 // - Every redeclarable is on a circular linked list.
34 // - Every decl has a pointer to the first element of the chain _and_ a
36 // - the "previous" (temporal) element in the chain
37 // - the "latest" (temporal) element in the chain
38 // - the "uninitialized-latest" value (when newly-constructed)
40 // - The first element is also often called the canonical element. Every
43 // - Most links in the chain point to previous, except the link out of
46 // - Elements are called "first", "previous", "latest" or
47 // "most-recent" when referring to temporal order: order of addition
50 // - It's easiest to just ignore the implementation of DeclLink when making
53 // - There's also a "definition" link for several types of
62 // +------------+ first +--------------+
63 // | | <--------------------------- | |
66 // | | +--------------+ | |
68 // | | <---- | | | |
71 // | seen first | <---- | seen second | <---- | seen third |
73 // +------------+ +--------------+ +--------------+
75 // | | ----> | | <---- | |
76 // +------------+ +--------------+ +--------------+
79 // | link +-----+ |
80 // +-->-------------------------------------------+
138 assert(!isFirst() && "decl became non-canonical unexpectedly"); in setPrevious()
211 static_cast<const decl_type*>(this))->getPreviousDecl(); in getPreviousDecl()
227 return getFirstDecl()->getNextRedeclaration(); in getMostRecentDecl()
232 return getFirstDecl()->getNextRedeclaration(); in getMostRecentDecl()
241 /// Current - The current declaration.
257 pointer operator->() const { return Current; }
263 if (Current->isFirstDecl()) {
273 decl_type *Next = Current->getNextRedeclaration();
307 /// will be the first-loaded declaration.
322 if (!D->isFromASTFile()) in getFirstDecl()
331 if (!D->isFromASTFile()) in getFirstDecl()
347 /// canonical decl -- if you use CanonicalDeclPtr as the key, you don't need to
353 : Ptr(Ptr ? Ptr->getCanonicalDecl() : nullptr) {} in CanonicalDeclPtr()
360 decl_type *operator->() { return Ptr; }
361 const decl_type *operator->() const { return Ptr; }