Updates to path stripping behavior (#665)

diff --git a/lib/src/utils.dart b/lib/src/utils.dart
index cfcdd80..2a37c9d 100644
--- a/lib/src/utils.dart
+++ b/lib/src/utils.dart
@@ -1,18 +1,43 @@
 import 'package:path/path.dart' as path;
 
-String stripFilePaths(String s) {
-  return s.replaceAllMapped(RegExp(r'(?:package:?)?[a-z]*\/\S*'), (match) {
+/// Matches any path in the string and replaces the part of the path before the
+/// last separator with either dart:core, package:flutter, or removes it.
+///
+/// ## Examples:
+///
+/// "Unused import: '/path/foo.dart'" -> "Unused import: 'foo.dart'"
+///
+/// "Unused import: '/path/to/dart/lib/world.dart'" -> "Unused import:
+/// 'dart:core/world.dart'"
+///
+/// "Unused import: 'package:flutter/material.dart'" -> "Unused import:
+/// 'package:flutter/material.dart'"
+String stripFilePaths(String str) {
+  // Match any URI. Also match URIs that are prefixed with dart:core or
+  // package:*
+  final regex = RegExp(r'(?:dart:core?)?(?:package:?)?[a-z]*\/\S*');
+
+  return str.replaceAllMapped(regex, (match) {
     final urlString = match.group(0);
     final pathComponents = path.split(urlString);
-    final isDartPath = pathComponents.contains('lib');
-    final isFlutterPath = isDartPath && pathComponents.contains('flutter');
+    final isDartPath =
+        pathComponents.contains('lib') && pathComponents.contains('core');
+
+    // matches the 'flutter' package in the SDK
+    final isFlutterPath = pathComponents.contains('flutter');
+
     final isPackagePath = urlString.contains('package:');
+    final isDartCorePath = urlString.contains('dart:core');
     final basename = path.basename(urlString);
 
     if (isFlutterPath) {
       return path.join('package:flutter', basename);
     }
 
+    if (isDartCorePath) {
+      return urlString;
+    }
+
     if (isDartPath) {
       return path.join('dart:core', basename);
     }
diff --git a/test/utils_test.unit b/test/utils_test.unit
index 9c6ad3f..e1a9d3d 100644
--- a/test/utils_test.unit
+++ b/test/utils_test.unit
@@ -3,7 +3,7 @@
 <<<
 List is defined in main.dart
 >>> Strips Dart SDK paths
-List is defined in /Users/ryjohn/.dvm/darts/2.10.5/lib/core/list.dart
+List is defined in /path/dart/dart/sdk/lib/core/list.dart
 <<<
 List is defined in dart:core/list.dart
 >>> Strips SDK and temporary directory paths
@@ -14,6 +14,10 @@
 Unused import: 'package:flutter/material.dart'.
 <<<
 Unused import: 'package:flutter/material.dart'.
+>>> Keeps dart:core paths intact
+dart:core/foo.dart
+<<<
+dart:core/foo.dart
 >>> Strips Flutter SDK paths
 The argument type 'StatelessWidget (where StatelessWidget is defined in /Users/username/path/to/dart-services/project_templates/flutter_project/main.dart)' can't be assigned to the parameter type 'StatelessWidget (where StatelessWidget is defined in /Users/username/path/to/dart-services/flutter-sdk/packages/flutter/lib/src/widgets/framework.dart)'.
 <<<