diff --git a/pkg/front_end/lib/src/fasta/dill/dill_extension_member_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_extension_member_builder.dart
index d12400f..07a6d6a 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_extension_member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_extension_member_builder.dart
@@ -22,6 +22,9 @@
   bool get isExternal => member.isExternal;
 
   @override
+  String get name => _descriptor.name.text;
+
+  @override
   ProcedureKind get kind {
     switch (_descriptor.kind) {
       case ExtensionMemberKind.Method:
diff --git a/pkg/front_end/test/incremental_suite.dart b/pkg/front_end/test/incremental_suite.dart
index dbb1cf7..6efa1ec 100644
--- a/pkg/front_end/test/incremental_suite.dart
+++ b/pkg/front_end/test/incremental_suite.dart
@@ -440,6 +440,8 @@
     }
 
     int worldNum = 0;
+    // TODO: When needed, we can do this for warnings too.
+    List<Set<String>> worldErrors = [];
     for (YamlMap world in worlds) {
       worldNum++;
       print("----------------");
@@ -891,6 +893,18 @@
       }
       List<int> incrementalSerializationBytes = serializationResult.output;
 
+      worldErrors.add(formattedErrors.toSet());
+      assert(worldErrors.length == worldNum);
+      if (world["expectSameErrorsAsWorld"] != null) {
+        int expectSameErrorsAsWorld = world["expectSameErrorsAsWorld"];
+        checkErrorsAndWarnings(
+          worldErrors[expectSameErrorsAsWorld - 1],
+          formattedErrors,
+          {},
+          {},
+        );
+      }
+
       Set<String> prevFormattedErrors = formattedErrors.toSet();
       Set<String> prevFormattedWarnings = formattedWarnings.toSet();
 
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml
new file mode 100644
index 0000000..21d2963
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml
@@ -0,0 +1,62 @@
+# Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE.md file.
+
+# This basically first compiles
+# tests/language_2/extension_methods/static_extension_prefix_double_import_test.dart
+# and then compiles
+# tests/language_2/extension_methods/static_extension_prefix_import_conflict_test.dart
+# as this has produced a wrong squigly-length on an error.
+
+type: newworld
+worlds:
+  - entry: main.dart
+    errors: true
+    sources:
+      main.dart: |
+        import "lib1.dart";
+        import "lib2.dart" as p;
+        main() {
+          Object o = 1;
+          o.onObject;
+        }
+      lib1.dart: |
+        extension OnObject on Object {
+          String get onObject => "object #1";
+        }
+      lib2.dart: |
+        extension AlsoOnObject on Object {
+          String get onObject => "object #2";
+        }
+    expectedLibraryCount: 3
+  - entry: main.dart
+    worldType: updated
+    expectInitializeFromDill: false
+    errors: false
+    invalidate:
+      - main.dart
+    sources:
+      main.dart: |
+        import "lib1.dart";
+        import "lib1.dart" as p;
+        main() {
+          Object o = 1;
+          o.onObject;
+        }
+    expectedLibraryCount: 2
+  - entry: main.dart
+    worldType: updated
+    expectInitializeFromDill: false
+    errors: true
+    expectSameErrorsAsWorld: 1
+    invalidate:
+      - main.dart
+    sources:
+      main.dart: |
+        import "lib1.dart";
+        import "lib2.dart" as p;
+        main() {
+          Object o = 1;
+          o.onObject;
+        }
+    expectedLibraryCount: 3
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect
new file mode 100644
index 0000000..fa77b0e
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect
@@ -0,0 +1,42 @@
+main = main::main;
+library from "org-dartlang-test:///lib1.dart" as lib1 {
+
+  extension OnObject on dart.core::Object* {
+    get onObject = lib1::OnObject|get#onObject;
+  }
+  static method OnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+    return "object #1";
+}
+library from "org-dartlang-test:///lib2.dart" as lib2 {
+
+  extension AlsoOnObject on dart.core::Object* {
+    get onObject = lib2::AlsoOnObject|get#onObject;
+  }
+  static method AlsoOnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+    return "object #2";
+}
+library from "org-dartlang-test:///main.dart" as main {
+//
+// Problems in library:
+//
+// org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.
+//  - 'Object' is from 'dart:core'.
+// Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
+//   o.onObject;
+//     ^^^^^^^^
+// org-dartlang-test:///lib1.dart:2:14: Context: This is one of the extension members.
+//   String get onObject => "object #1";
+//              ^^^^^^^^
+// org-dartlang-test:///lib2.dart:2:14: Context: This is one of the extension members.
+//   String get onObject => "object #2";
+//              ^^^^^^^^
+//
+
+  import "org-dartlang-test:///lib1.dart";
+  import "org-dartlang-test:///lib2.dart" as p;
+
+  static method main() → dynamic {
+    dart.core::Object* o = 1;
+    invalid-expression "org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.\n - 'Object' is from 'dart:core'.\nTry using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.\n  o.onObject;\n    ^^^^^^^^";
+  }
+}
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect
new file mode 100644
index 0000000..55a319c
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect
@@ -0,0 +1,19 @@
+main = main::main;
+library from "org-dartlang-test:///lib1.dart" as lib1 {
+
+  extension OnObject on dart.core::Object* {
+    get onObject = lib1::OnObject|get#onObject;
+  }
+  static method OnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+    return "object #1";
+}
+library from "org-dartlang-test:///main.dart" as main {
+
+  import "org-dartlang-test:///lib1.dart";
+  import "org-dartlang-test:///lib1.dart" as p;
+
+  static method main() → dynamic {
+    dart.core::Object* o = 1;
+    lib1::OnObject|get#onObject(o);
+  }
+}
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect
new file mode 100644
index 0000000..fa77b0e
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect
@@ -0,0 +1,42 @@
+main = main::main;
+library from "org-dartlang-test:///lib1.dart" as lib1 {
+
+  extension OnObject on dart.core::Object* {
+    get onObject = lib1::OnObject|get#onObject;
+  }
+  static method OnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+    return "object #1";
+}
+library from "org-dartlang-test:///lib2.dart" as lib2 {
+
+  extension AlsoOnObject on dart.core::Object* {
+    get onObject = lib2::AlsoOnObject|get#onObject;
+  }
+  static method AlsoOnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+    return "object #2";
+}
+library from "org-dartlang-test:///main.dart" as main {
+//
+// Problems in library:
+//
+// org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.
+//  - 'Object' is from 'dart:core'.
+// Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
+//   o.onObject;
+//     ^^^^^^^^
+// org-dartlang-test:///lib1.dart:2:14: Context: This is one of the extension members.
+//   String get onObject => "object #1";
+//              ^^^^^^^^
+// org-dartlang-test:///lib2.dart:2:14: Context: This is one of the extension members.
+//   String get onObject => "object #2";
+//              ^^^^^^^^
+//
+
+  import "org-dartlang-test:///lib1.dart";
+  import "org-dartlang-test:///lib2.dart" as p;
+
+  static method main() → dynamic {
+    dart.core::Object* o = 1;
+    invalid-expression "org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.\n - 'Object' is from 'dart:core'.\nTry using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.\n  o.onObject;\n    ^^^^^^^^";
+  }
+}
diff --git a/tests/language/export/duplicate_import_libd.dart b/tests/language/export/duplicate_import_libd.dart
index 14f1ff4..ccec81e 100644
--- a/tests/language/export/duplicate_import_libd.dart
+++ b/tests/language/export/duplicate_import_libd.dart
@@ -8,6 +8,6 @@
 import 'duplicate_import_libb.dart';
 import 'duplicate_import_libc.dart';
 
-export '../duplicate_import_liba.dart';
+export 'duplicate_import_liba.dart';
 export 'duplicate_import_libb.dart';
 export 'duplicate_import_libc.dart';
diff --git a/tests/language_2/export/duplicate_import_libd.dart b/tests/language_2/export/duplicate_import_libd.dart
index 54bd35c..3408bfa 100644
--- a/tests/language_2/export/duplicate_import_libd.dart
+++ b/tests/language_2/export/duplicate_import_libd.dart
@@ -10,6 +10,6 @@
 import 'duplicate_import_libb.dart';
 import 'duplicate_import_libc.dart';
 
-export '../duplicate_import_liba.dart';
+export 'duplicate_import_liba.dart';
 export 'duplicate_import_libb.dart';
 export 'duplicate_import_libc.dart';
diff --git a/tools/VERSION b/tools/VERSION
index 906f90f..4a7410b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 259
+PRERELEASE 260
 PRERELEASE_PATCH 0
\ No newline at end of file
