Enable extension types in package:web and dart:js_interop

This uses the allowed_experiments.json to opt package:web and
dart:js_interop in to the inline-class experiment (the extension
types feature) for early access and development.

Change-Id: Ieb828b654f2320b147a3c48bbb4a142da1c18380
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/332421
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Johnni Winther 2023-10-30 10:58:45 +00:00 committed by Commit Queue
parent 5403dc4927
commit f900eb95b7
6 changed files with 24 additions and 5 deletions

View file

@ -85,7 +85,7 @@ enum ExperimentalFlag {
isEnabledByDefault: false,
isExpired: false,
experimentEnabledVersion: defaultLanguageVersion,
experimentReleasedVersion: defaultLanguageVersion),
experimentReleasedVersion: const Version(3, 3)),
macros(
name: 'macros',

View file

@ -86,7 +86,7 @@ import 'package:analyzer/src/utilities/uri_cache.dart';
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
class AnalysisDriver implements AnalysisDriverGeneric {
/// The version of data format, should be incremented on every format change.
static const int DATA_VERSION = 314;
static const int DATA_VERSION = 315;
/// The number of exception contexts allowed to write. Once this field is
/// zero, we stop writing any new exception contexts in this process.

View file

@ -240,7 +240,7 @@ class ExperimentalFeatures {
isEnabledByDefault: IsEnabledByDefault.inline_class,
isExpired: IsExpired.inline_class,
documentation: 'Extension Types',
experimentalReleaseVersion: null,
experimentalReleaseVersion: Version.parse('3.3.0'),
releaseVersion: null,
);

View file

@ -145,7 +145,7 @@ class ExperimentalFlag {
isExpired: false,
enabledVersion: defaultLanguageVersion,
experimentEnabledVersion: defaultLanguageVersion,
experimentReleasedVersion: defaultLanguageVersion);
experimentReleasedVersion: const Version(3, 3));
static const ExperimentalFlag macros = const ExperimentalFlag(
name: 'macros',
@ -751,7 +751,11 @@ const AllowedExperimentalFlags defaultAllowedExperimentalFlags =
ExperimentalFlag.records,
ExperimentalFlag.classModifiers,
ExperimentalFlag.sealedClass,
}, sdkLibraryExperiments: {}, packageExperiments: {
}, sdkLibraryExperiments: {
"js_interop": {
ExperimentalFlag.inlineClass,
},
}, packageExperiments: {
"async": {
ExperimentalFlag.nonNullable,
},
@ -932,6 +936,9 @@ const AllowedExperimentalFlags defaultAllowedExperimentalFlags =
"video_player_web": {
ExperimentalFlag.nonNullable,
},
"web": {
ExperimentalFlag.inlineClass,
},
});
const Map<shared.ExperimentalFlag, ExperimentalFlag> sharedExperimentalFlags = {
shared.ExperimentalFlag.classModifiers: ExperimentalFlag.classModifiers,

View file

@ -8,12 +8,20 @@
],
"nullSafety": [
"non-nullable"
],
"extensionTypes": [
"inline-class"
]
},
"sdk": {
"default": {
"experimentSet": "sdkExperiments"
},
"libraries": {
"js_interop": {
"experimentSet": "extensionTypes"
}
},
"_example_libraries": {
"ui": {
"experimentSet": "nullSafety"
@ -200,6 +208,9 @@
},
"video_player_web": {
"experimentSet": "nullSafety"
},
"web": {
"experimentSet": "extensionTypes"
}
}
}

View file

@ -122,6 +122,7 @@ features:
help: "Static meta-programming"
inline-class:
experimentalReleaseVersion: '3.3.0'
help: "Extension Types"
native-assets: