Version 1.10.0-dev.1.4

svn merge -c 45178 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 45180 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 45189 https://dart.googlecode.com/svn/branches/bleeding_edge trunk

git-svn-id: http://dart.googlecode.com/svn/trunk@45191 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index ad79134..b65279b 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -4531,7 +4531,8 @@
     } else {
       _useIdentifierElement(node);
       if (element == null ||
-          element is! LocalElement && !identical(element, _enclosingExec)) {
+          element.enclosingElement is ClassElement &&
+              !identical(element, _enclosingExec)) {
         usedElements.members.add(node.name);
         if (isIdentifierRead) {
           usedElements.readMembers.add(node.name);
@@ -4540,11 +4541,6 @@
     }
   }
 
-  @override
-  visitTypeName(TypeName node) {
-    _useIdentifierElement(node.name);
-  }
-
   /**
    * Marks an [Element] of [node] as used in the library.
    */
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 6afb5dc..fcb6c5c 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -3323,6 +3323,19 @@
     verify([source]);
   }
 
+  void test_unusedElement_class_isUsed_typeArgument() {
+    enableUnusedElement = true;
+    Source source = addSource(r'''
+class _A {}
+main() {
+  var v = new List<_A>();
+  print(v);
+}''');
+    resolve(source);
+    assertNoErrors(source);
+    verify([source]);
+  }
+
   void test_unusedElement_class_notUsed_inClassMember() {
     enableUnusedElement = true;
     Source source = addSource(r'''
@@ -3554,6 +3567,19 @@
     verify([source]);
   }
 
+  void test_unusedElement_functionTypeAlias_isUsed_typeArgument() {
+    enableUnusedElement = true;
+    Source source = addSource(r'''
+typedef _F(a, b);
+main() {
+  var v = new List<_F>();
+  print(v);
+}''');
+    resolve(source);
+    assertNoErrors(source);
+    verify([source]);
+  }
+
   void test_unusedElement_functionTypeAlias_isUsed_variableDeclaration() {
     enableUnusedElement = true;
     Source source = addSource(r'''
diff --git a/sdk/lib/_internal/pub/test/serve/404_page_test.dart b/sdk/lib/_internal/pub/test/serve/404_page_test.dart
index 7a77c40..f1f2ce3 100644
--- a/sdk/lib/_internal/pub/test/serve/404_page_test.dart
+++ b/sdk/lib/_internal/pub/test/serve/404_page_test.dart
@@ -39,7 +39,7 @@
       expect(response.statusCode, equals(404));
 
       // Should mention the asset that can't be found.
-      expect(response.body, contains('&quot;/packages&quot;'));
+      expect(response.body, contains('&quot;&#47;packages&quot;'));
     });
 
     endPubServe();
diff --git a/sdk/lib/convert/html_escape.dart b/sdk/lib/convert/html_escape.dart
index 2c54b91..ef4b02e 100644
--- a/sdk/lib/convert/html_escape.dart
+++ b/sdk/lib/convert/html_escape.dart
@@ -182,7 +182,7 @@
         case "'": if (mode.escapeApos) replacement = '&#39;'; break;
         case '<': if (mode.escapeLtGt) replacement = '&lt;'; break;
         case '>': if (mode.escapeLtGt) replacement = '&gt;'; break;
-        case '/': if (mode.escapeSlash) replacement = '&#46;'; break;
+        case '/': if (mode.escapeSlash) replacement = '&#47;'; break;
       }
       if (replacement != null) {
         if (result == null) result = new StringBuffer();
diff --git a/tests/lib/convert/html_escape_test.dart b/tests/lib/convert/html_escape_test.dart
index a4596dc..8a13773 100644
--- a/tests/lib/convert/html_escape_test.dart
+++ b/tests/lib/convert/html_escape_test.dart
@@ -10,7 +10,7 @@
 
 const _TEST_INPUT = """<A </test> of \xA0 "double" & 'single' values>""";
 
-const _OUTPUT_UNKNOWN = '&lt;A &lt;&#46;test&gt; of \xA0 &quot;double&quot; '
+const _OUTPUT_UNKNOWN = '&lt;A &lt;&#47;test&gt; of \xA0 &quot;double&quot; '
   '&amp; &#39;single&#39; values&gt;';
 
 const _OUTPUT_ATTRIBUTE =
diff --git a/tools/VERSION b/tools/VERSION
index 287630a..c1363d0 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 10
 PATCH 0
 PRERELEASE 1
-PRERELEASE_PATCH 3
+PRERELEASE_PATCH 4