Avoid a "missing_return" warning in isValidImplementation.

The analyzer can't tell that `unhandled` is guaranteed not to return,
so it thinks that `isValidImplementation` might exit without returning
a value.  An easy workaround is to turn the call to `unhandled` into a
`throw`.

This is needed to roll kernel into the internal Google codebase, in
which the "missing_return" warning causes build failures.

Change-Id: Ia88b6cdef3693ab4646470616c7f868c5bad0502
Reviewed-on: https://dart-review.googlesource.com/72900
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
index c143b6d..70a9cd1 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
@@ -492,7 +492,7 @@
         }
       }
 
-      unhandled(
+      return unhandled(
           "${interfaceMember.runtimeType} and ${dispatchTarget.runtimeType}",
           "isValidImplementation",
           interfaceMember.fileOffset,