[ddc] Make escapeIdentifier API non-nullable

All uses either already pass a non-nullable String or assert that
the returned value is non-nullable which would be equivalent to
asserting that the value passed is not null.

Change-Id: I6308a8b39bc5ee08db6741145ed7b8a983c33118
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365662
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
diff --git a/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart b/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
index 75ff49c..a109325 100644
--- a/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
+++ b/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
@@ -30,7 +30,7 @@
 
 final Pattern _syntheticTypeCharacters = RegExp('[&^#.|]');
 
-String? escapeIdentifier(String? identifier) {
+String escapeIdentifier(String identifier) {
   // Remove the special characters used to encode mixin application class names
   // and extension method / parameter names which are legal in Kernel, but not
   // in JavaScript.
@@ -38,7 +38,7 @@
   // Note, there is an implicit assumption here that we won't have
   // collisions since everything is mapped to \$.  That may work out fine given
   // how these are synthesized, but may need to revisit.
-  return identifier?.replaceAll(_syntheticTypeCharacters, r'$');
+  return identifier.replaceAll(_syntheticTypeCharacters, r'$');
 }
 
 /// Returns the escaped name for class [node].
@@ -48,7 +48,7 @@
 ///
 /// In the current encoding, generic classes are generated in a function scope
 /// which avoids name clashes of the escaped class name.
-String getLocalClassName(Class node) => escapeIdentifier(node.name)!;
+String getLocalClassName(Class node) => escapeIdentifier(node.name);
 
 /// Returns the escaped name for the type parameter [node].
 ///
@@ -58,10 +58,10 @@
     /* TypeParameter | StructuralParameter */ Object node) {
   assert(node is TypeParameter || node is StructuralParameter);
   if (node is TypeParameter) {
-    return escapeIdentifier(node.name)!;
+    return escapeIdentifier(node.name!);
   } else {
     node as StructuralParameter;
-    return escapeIdentifier(node.name)!;
+    return escapeIdentifier(node.name!);
   }
 }
 
diff --git a/pkg/dev_compiler/lib/src/kernel/type_table.dart b/pkg/dev_compiler/lib/src/kernel/type_table.dart
index 92fedbb..4c6c2ea 100644
--- a/pkg/dev_compiler/lib/src/kernel/type_table.dart
+++ b/pkg/dev_compiler/lib/src/kernel/type_table.dart
@@ -153,7 +153,7 @@
 
   TypeTable(String name, this._runtimeCall)
       : typeContainer = ModuleItemContainer<DartType>.asObject(name,
-            keyToString: (DartType t) => escapeIdentifier(_typeString(t))!);
+            keyToString: (DartType t) => escapeIdentifier(_typeString(t)));
 
   /// Returns true if [type] is already recorded in the table.
   bool _isNamed(DartType type) =>
@@ -267,7 +267,7 @@
       // TODO(40273) Remove prepended text when we have a better way to hide
       // these names from debug tools.
       _unboundTypeIds[type] =
-          js_ast.TemporaryId(escapeIdentifier('__t\$${_typeString(type)}')!);
+          js_ast.TemporaryId(escapeIdentifier('__t\$${_typeString(type)}'));
     }
 
     for (var free in freeVariables) {