Update spec on `interface`, `mixin` and `async`.

Change-Id: If445e1c154fc5b99b59d96ec3338f4273ee431dc
Reviewed-on: https://dart-review.googlesource.com/55282
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
diff --git a/docs/language/dart.sty b/docs/language/dart.sty
index 6f5a870..468a8e8 100644
--- a/docs/language/dart.sty
+++ b/docs/language/dart.sty
@@ -21,7 +21,9 @@
 \def\GET{\builtinId{get}}
 \def\IMPLEMENTS{\builtinId{implements}}
 \def\IMPORT{\builtinId{import}}
+\def\INTERFACE{\builtinId{interface}}
 \def\LIBRARY{\builtinId{library}}
+\def\MIXIN{\builtinId{mixin}}
 \def\OPERATOR{\builtinId{operator}}
 \def\PART{\builtinId{part}}
 \def\SET{\builtinId{set}}
diff --git a/docs/language/dartLangSpec.tex b/docs/language/dartLangSpec.tex
index 3d99fb8..4ad9e1d 100644
--- a/docs/language/dartLangSpec.tex
+++ b/docs/language/dartLangSpec.tex
@@ -45,6 +45,8 @@
 % - Specify `call` for Dart 2 (no function type given to enclosing class).
 % - Clarify that an identifier reference denoting a top-level, static, or
 %   local function evaluates to the closurization of that declaration.
+% - Make `mixin` and `interface` built-in identifiers.
+% - Make `async` *not* a reserved word inside async functions.
 %
 % 1.15
 % - Change how language specification describes control flow.
@@ -6847,8 +6849,10 @@
   \GET{};
   \IMPLEMENTS{};
   \IMPORT{};
+  \INTERFACE{};
   \LIBRARY{};
   \OPERATOR{};
+  \MIXIN{};
   \PART{};
   \SET{};
   \STATIC{};
@@ -6891,7 +6895,7 @@
 }
 
 \LMHash{}
-It is a compile-time error if any of the identifiers \ASYNC, \AWAIT{} or \YIELD{} is used as an identifier in a function body marked with either \ASYNC{}, \ASYNC* or \SYNC*.
+It is a compile-time error if either of the identifiers \AWAIT{} or \YIELD{} is used as an identifier in a function body marked with either \ASYNC{}, \ASYNC* or \SYNC*.
 
 \rationale{
 For compatibility reasons, new constructs cannot rely upon new reserved words or even built-in identifiers.