Remove ScopedDecl, collapsing all of its functionality into Decl, so
that every declaration lives inside a DeclContext.

Moved several things that don't have names but were ScopedDecls (and,
therefore, NamedDecls) to inherit from Decl rather than NamedDecl,
including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't
store empty DeclarationNames for these things, nor do we try to insert
them into DeclContext's lookup structure.

The serialization tests are temporarily disabled. We'll re-enable them
once we've sorted out the remaining ownership/serialiazation issues
between DeclContexts and TranslationUnion, DeclGroups, etc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62562 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/InternalsManual.html b/docs/InternalsManual.html
index 2fcadb7..2723284 100644
--- a/docs/InternalsManual.html
+++ b/docs/InternalsManual.html
@@ -1019,14 +1019,12 @@
   (de-)serialization.</dd>
 </dl>
 
-<p>The declarations stored within each declaration context are
-  called <i>scoped declarations</i> and the AST nodes for each of
-  these declarations are 
-  derived from the <code>ScopedDecl</code> class, which provides
-  information about the context in which that declaration lives. One
+<p>All declarations are stored within a declaration context, and one
+  can query
+  information about the context in which each declaration lives. One
   can retrieve the <code>DeclContext</code> that contains a
-  particular <code>ScopedDecl</code>
-  using <code>ScopedDecl::getDeclContext</code>. However, see the
+  particular <code>Decl</code>
+  using <code>Decl::getDeclContext</code>. However, see the
   section <a href="#LexicalAndSemanticContexts">Lexical and Semantic
   Contexts</a> for more information about how to interpret this
   context information.</p>
@@ -1065,15 +1063,14 @@
   primarily use this semantics-centric view.</p>
 
 <h4 id="LexicalAndSemanticContexts">Lexical and Semantic Contexts</h4>
-<p>Each scoped declaration (whose AST node derived
-  from <code>ScopedDecl</code>) has two potentially different
+<p>Each declaration has two potentially different
   declaration contexts: a <i>lexical</i> context, which corresponds to
   the source-centric view of the declaration context, and
   a <i>semantic</i> context, which corresponds to the
   semantics-centric view. The lexical context is accessible
-  via <code>ScopedDecl::getLexicalDeclContext</code> while the
+  via <code>Decl::getLexicalDeclContext</code> while the
   semantic context is accessible
-  via <code>ScopedDecl::getDeclContext</code>, both of which return
+  via <code>Decl::getDeclContext</code>, both of which return
   <code>DeclContext</code> pointers. For most declarations, the two
   contexts are identical. For example:</p>