diff --git a/pkg/analyzer/lib/src/dart/sdk/sdk.dart b/pkg/analyzer/lib/src/dart/sdk/sdk.dart
index 5747d95..1dc8724 100644
--- a/pkg/analyzer/lib/src/dart/sdk/sdk.dart
+++ b/pkg/analyzer/lib/src/dart/sdk/sdk.dart
@@ -6,7 +6,6 @@
 library;
 
 import 'dart:collection';
-import 'dart:io' as io;
 
 import 'package:analyzer/dart/analysis/features.dart';
 import 'package:analyzer/dart/analysis/utilities.dart';
@@ -23,22 +22,6 @@
 import 'package:pub_semver/pub_semver.dart';
 import 'package:yaml/yaml.dart';
 
-/// Returns the version of the SDK that runs the analyzer.
-Version? get runningSdkVersion {
-  try {
-    var regExp = RegExp(r'^(\d+\.\d+\.\d+)');
-    var match = regExp.firstMatch(io.Platform.version);
-    if (match == null) {
-      return null;
-    }
-
-    var sdkVersionStr = match.group(1)!;
-    return Version.parse(sdkVersionStr);
-  } catch (_) {
-    return null;
-  }
-}
-
 Version languageVersionFromSdkVersion(String sdkVersionStr) {
   var sdkVersionParts = sdkVersionStr.split('.');
   var sdkVersionMajor = int.parse(sdkVersionParts[0]);
@@ -221,16 +204,13 @@
 
   final Map<String, String> _urlMappings = HashMap<String, String>();
 
-  // TODO(scheglov): Make [languageVersion] required.
-  /// https://github.com/dart-lang/sdk/issues/42890
   EmbedderSdk(
     ResourceProvider resourceProvider,
     Map<Folder, YamlMap>? embedderYamls, {
-    Version? languageVersion,
+    required Version languageVersion,
   }) {
     this.resourceProvider = resourceProvider;
-    _languageVersion =
-        languageVersion ?? languageVersionFromSdkVersion(io.Platform.version);
+    _languageVersion = languageVersion;
     embedderYamls?.forEach(_processEmbedderYaml);
   }
 
