Version 3.11.0-68.0.dev
Merge 6d70657fad57d868cde3e8943c71fcc31cbe3c60 into dev
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
index c8b3585..0d4d18f 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -2209,10 +2209,20 @@
Token closer = typeParam.skip(token);
if (closer.next!.isA(TokenType.OPEN_PAREN)) {
if (varFinalOrConst != null) {
- reportRecoverableError(
- varFinalOrConst,
- codes.codeFunctionTypedParameterVar,
- );
+ if (memberKind != MemberKind.PrimaryConstructor) {
+ reportRecoverableError(
+ varFinalOrConst,
+ codes.codeFunctionTypedParameterVar,
+ );
+ } else {
+ if (!_isDeclaringConstructorsFeatureEnabled) {
+ reportExperimentNotEnabled(
+ ExperimentalFlag.declaringConstructors,
+ varFinalOrConst,
+ varFinalOrConst,
+ );
+ }
+ }
}
beforeInlineFunctionType = token;
token = closer.next!.endGroup!;
@@ -2221,10 +2231,20 @@
}
} else if (next.isA(TokenType.OPEN_PAREN)) {
if (varFinalOrConst != null) {
- reportRecoverableError(
- varFinalOrConst,
- codes.codeFunctionTypedParameterVar,
- );
+ if (memberKind != MemberKind.PrimaryConstructor) {
+ reportRecoverableError(
+ varFinalOrConst,
+ codes.codeFunctionTypedParameterVar,
+ );
+ } else {
+ if (!_isDeclaringConstructorsFeatureEnabled) {
+ reportExperimentNotEnabled(
+ ExperimentalFlag.declaringConstructors,
+ varFinalOrConst,
+ varFinalOrConst,
+ );
+ }
+ }
}
beforeInlineFunctionType = token;
token = next.endGroup!;
diff --git a/pkg/dart2wasm/lib/code_generator.dart b/pkg/dart2wasm/lib/code_generator.dart
index 118a713..da53fc5 100644
--- a/pkg/dart2wasm/lib/code_generator.dart
+++ b/pkg/dart2wasm/lib/code_generator.dart
@@ -54,13 +54,9 @@
extends ExpressionVisitor1<w.ValueType, w.ValueType>
with
ExpressionVisitor1DefaultMixin<w.ValueType, w.ValueType>,
- ExpressionVisitor1ExperimentExclusionMixin<w.ValueType,
- w.ValueType>,
+ ExpressionVisitor1ExperimentExclusionMixin<w.ValueType, w.ValueType>,
StatementVisitorExperimentExclusionMixin<void>
- implements
- InitializerVisitor<void>,
- StatementVisitor<void>,
- CodeGenerator {
+ implements InitializerVisitor<void>, StatementVisitor<void>, CodeGenerator {
final Translator translator;
final w.FunctionType functionType;
final Member enclosingMember;
diff --git a/pkg/dart2wasm/lib/compile.dart b/pkg/dart2wasm/lib/compile.dart
index 34b5955..a936063 100644
--- a/pkg/dart2wasm/lib/compile.dart
+++ b/pkg/dart2wasm/lib/compile.dart
@@ -584,7 +584,7 @@
return DynamicSubmoduleStrategy(
component, options, target, coreTypes, dynamicMainModuleUri!);
}
- return DefaultModuleStrategy(component, options);
+ return DefaultModuleStrategy(coreTypes, component, options);
}
// Patches `dart:_internal`s `mainTearOff{0,1,2}` getters.
diff --git a/pkg/dart2wasm/lib/deferred_loading.dart b/pkg/dart2wasm/lib/deferred_loading.dart
index 3e68215..35256af 100644
--- a/pkg/dart2wasm/lib/deferred_loading.dart
+++ b/pkg/dart2wasm/lib/deferred_loading.dart
@@ -18,6 +18,7 @@
import 'generate_wasm.dart';
import 'modules.dart';
import 'target.dart';
+import 'util.dart' show addPragma;
/// The root of a deferred import subgraph.
///
@@ -91,15 +92,21 @@
DeferredLoadingModuleStrategy(
this.component, this.options, this.kernelTarget, this.coreTypes);
+ late final deferredLoweringTransformer = options.loadsIdsUri != null
+ ? _DeferredLoadingLoweringLoadIds(component, coreTypes)
+ : DeferredLoadingLoweringUris(coreTypes);
+
@override
void prepareComponent() {
- if (options.loadsIdsUri != null) {
- component.accept(_DeferredLoadingLoadIdTransformer(component, coreTypes));
- }
+ // Since we've deferred module loading enabled, we mark the necessary
+ // runtime methods as entrypoints for TFA.
+ deferredLoweringTransformer.markRuntimeFunctionsAsEntrypoints();
}
@override
Future<void> processComponentAfterTfa() async {
+ component.accept(deferredLoweringTransformer);
+
final (libraryToRootSet, importTargetMap) = _buildLibraryToImports();
final builder = ModuleMetadataBuilder(options);
@@ -229,6 +236,10 @@
final WasmCompilerOptions options;
late final ModuleOutputData moduleOutputData;
+ late final deferredLoweringTransformer = options.loadsIdsUri != null
+ ? _DeferredLoadingLoweringLoadIds(component, coreTypes)
+ : DeferredLoadingLoweringUris(coreTypes);
+
/// We load all 'dart:*' libraries since just doing the deferred load of modules
/// requires a significant portion of the SDK libraries.
late final Set<Library> _testModeMainLibraries = {
@@ -283,13 +294,15 @@
await_transformer.transformLibraries(
[invokeMain.enclosingLibrary], classHierarchy, coreTypes);
- if (options.loadsIdsUri != null) {
- component.accept(_DeferredLoadingLoadIdTransformer(component, coreTypes));
- }
+ // Since we've deferred module loading enabled, we mark the necessary
+ // runtime methods as entrypoints for TFA.
+ deferredLoweringTransformer.markRuntimeFunctionsAsEntrypoints();
}
@override
Future<void> processComponentAfterTfa() async {
+ component.accept(deferredLoweringTransformer);
+
final moduleBuilder = ModuleMetadataBuilder(options);
final mainModule = moduleBuilder.buildModuleMetadata();
final initLibraries = _testModeMainLibraries;
@@ -409,21 +422,78 @@
return const JsonEncoder.withIndent(' ').convert(output);
}
-class _DeferredLoadingLoadIdTransformer extends Transformer {
- final Procedure? _loadLibrary;
- final Procedure? _checkLibraryIsLoaded;
+abstract class DeferredLoadingLoweringBase extends Transformer {
+ final CoreTypes coreTypes;
+
+ DeferredLoadingLoweringBase(this.coreTypes);
+
+ void markRuntimeFunctionsAsEntrypoints();
+
+ void addEntryPointPragma(Procedure node) {
+ addPragma(node, 'wasm:entry-point', coreTypes, value: BoolConstant(true));
+ }
+}
+
+class DeferredLoadingLoweringUris extends DeferredLoadingLoweringBase {
+ final Procedure _loadLibrary;
+ final Procedure _checkLibraryIsLoaded;
+
+ DeferredLoadingLoweringUris(super.coreTypes)
+ : _loadLibrary = coreTypes.index
+ .getTopLevelProcedure('dart:_internal', 'loadLibrary'),
+ _checkLibraryIsLoaded = coreTypes.index
+ .getTopLevelProcedure('dart:_internal', 'checkLibraryIsLoaded');
+
+ @override
+ void markRuntimeFunctionsAsEntrypoints() {
+ addEntryPointPragma(_loadLibrary);
+ addEntryPointPragma(_checkLibraryIsLoaded);
+ }
+
+ @override
+ TreeNode visitLibrary(Library node) {
+ for (final dep in node.dependencies) {
+ if (dep.isDeferred) {
+ return super.visitLibrary(node);
+ }
+ }
+ // No need to transform libraries without deferred imports.
+ return node;
+ }
+
+ @override
+ TreeNode visitLoadLibrary(LoadLibrary node) {
+ final import = node.import;
+ return StaticInvocation(
+ _loadLibrary,
+ Arguments([
+ StringLiteral('${import.enclosingLibrary.importUri}'),
+ StringLiteral(import.name!)
+ ]));
+ }
+
+ @override
+ TreeNode visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
+ final import = node.import;
+ return StaticInvocation(
+ _checkLibraryIsLoaded,
+ Arguments([
+ StringLiteral('${import.enclosingLibrary.importUri}'),
+ StringLiteral(import.name!)
+ ]));
+ }
+}
+
+class _DeferredLoadingLoweringLoadIds extends DeferredLoadingLoweringBase {
final Procedure _loadLibraryFromLoadId;
final Procedure _checkLibraryIsLoadedFromLoadId;
+
final LoadIdRepository _loadIdRepository = LoadIdRepository();
Map<String, int> _libraryLoadIds = {};
int _loadIdCounter = 1;
- _DeferredLoadingLoadIdTransformer(Component component, CoreTypes coreTypes)
- : _loadLibrary = coreTypes.index.tryGetProcedure(
- 'dart:_internal', LibraryIndex.topLevel, 'loadLibrary'),
- _checkLibraryIsLoaded = coreTypes.index.tryGetProcedure(
- 'dart:_internal', LibraryIndex.topLevel, 'checkLibraryIsLoaded'),
- _loadLibraryFromLoadId = coreTypes.index
+ _DeferredLoadingLoweringLoadIds(Component component, super.coreTypes)
+ : _loadLibraryFromLoadId = coreTypes.index
.getTopLevelProcedure('dart:_internal', 'loadLibraryFromLoadId'),
_checkLibraryIsLoadedFromLoadId = coreTypes.index.getTopLevelProcedure(
'dart:_internal', 'checkLibraryIsLoadedFromLoadId') {
@@ -431,6 +501,12 @@
}
@override
+ void markRuntimeFunctionsAsEntrypoints() {
+ addEntryPointPragma(_loadLibraryFromLoadId);
+ addEntryPointPragma(_checkLibraryIsLoadedFromLoadId);
+ }
+
+ @override
TreeNode visitLibrary(Library node) {
// Assign a load ID to each deferred import.
_libraryLoadIds = {};
@@ -446,17 +522,19 @@
}
@override
- TreeNode visitStaticInvocation(StaticInvocation node) {
- if (node.target != _loadLibrary && node.target != _checkLibraryIsLoaded) {
- return super.visitStaticInvocation(node);
- }
- final [_, importPrefix as StringLiteral] = node.arguments.positional;
- final loadId = '${_libraryLoadIds[importPrefix.value]!}';
+ TreeNode visitLoadLibrary(LoadLibrary node) {
+ final import = node.import;
+ final loadId = '${_libraryLoadIds[import.name!]!}';
return StaticInvocation(
- node.target == _loadLibrary
- ? _loadLibraryFromLoadId
- : _checkLibraryIsLoadedFromLoadId,
- Arguments([StringLiteral(loadId)]));
+ _loadLibraryFromLoadId, Arguments([StringLiteral(loadId)]));
+ }
+
+ @override
+ TreeNode visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
+ final import = node.import;
+ final loadId = '${_libraryLoadIds[import.name!]!}';
+ return StaticInvocation(
+ _checkLibraryIsLoadedFromLoadId, Arguments([StringLiteral(loadId)]));
}
}
diff --git a/pkg/dart2wasm/lib/dynamic_modules.dart b/pkg/dart2wasm/lib/dynamic_modules.dart
index 7aad53fa..12d36b1 100644
--- a/pkg/dart2wasm/lib/dynamic_modules.dart
+++ b/pkg/dart2wasm/lib/dynamic_modules.dart
@@ -20,6 +20,7 @@
import 'code_generator.dart';
import 'compiler_options.dart';
import 'constants.dart' show maxArrayNewFixedLength;
+import 'deferred_loading.dart' show DeferredLoadingLoweringUris;
import 'dispatch_table.dart';
import 'dynamic_module_kernel_metadata.dart';
import 'intrinsics.dart' show MemberIntrinsic;
@@ -117,6 +118,9 @@
this.dynamicInterfaceSpecificationBaseUri)
: index = coreTypes.index;
+ late final deferredLoweringTransformer =
+ DeferredLoadingLoweringUris(coreTypes);
+
@override
void prepareComponent() {
// Annotate the kernel with info from dynamic interface.
@@ -131,6 +135,8 @@
component.addMetadataRepository(DynamicModuleConstantRepository());
component.addMetadataRepository(DynamicModuleGlobalIdRepository());
+
+ deferredLoweringTransformer.markRuntimeFunctionsAsEntrypoints();
}
@override
@@ -202,7 +208,9 @@
}
@override
- Future<void> processComponentAfterTfa() async {}
+ Future<void> processComponentAfterTfa() async {
+ component.accept(deferredLoweringTransformer);
+ }
}
class DynamicSubmoduleStrategy extends ModuleStrategy {
diff --git a/pkg/dart2wasm/lib/modules.dart b/pkg/dart2wasm/lib/modules.dart
index 40c073c..32192d5 100644
--- a/pkg/dart2wasm/lib/modules.dart
+++ b/pkg/dart2wasm/lib/modules.dart
@@ -7,6 +7,7 @@
import 'package:path/path.dart' as path;
import 'compiler_options.dart';
+import 'deferred_loading.dart' show DeferredLoadingLoweringUris;
import 'target.dart';
import 'util.dart';
@@ -101,10 +102,14 @@
/// Module strategy that puts all libraries into a single module.
class DefaultModuleStrategy extends ModuleStrategy {
+ final CoreTypes coreTypes;
final Component component;
final WasmCompilerOptions options;
- DefaultModuleStrategy(this.component, this.options);
+ DefaultModuleStrategy(this.coreTypes, this.component, this.options);
+
+ late final deferredLoweringTransformer =
+ DeferredLoadingLoweringUris(coreTypes);
@override
ModuleOutputData buildModuleOutputData() {
@@ -117,10 +122,14 @@
}
@override
- void prepareComponent() {}
+ void prepareComponent() {
+ deferredLoweringTransformer.markRuntimeFunctionsAsEntrypoints();
+ }
@override
- Future<void> processComponentAfterTfa() async {}
+ Future<void> processComponentAfterTfa() async {
+ component.accept(deferredLoweringTransformer);
+ }
}
bool _hasWasmExportPragma(CoreTypes coreTypes, Member m) =>
diff --git a/pkg/dart2wasm/lib/transformers.dart b/pkg/dart2wasm/lib/transformers.dart
index af643d6..96a30aa 100644
--- a/pkg/dart2wasm/lib/transformers.dart
+++ b/pkg/dart2wasm/lib/transformers.dart
@@ -57,9 +57,6 @@
final Procedure _trySetStackTraceForwarder;
final Procedure _trySetStackTrace;
- final Procedure _loadLibrary;
- final Procedure _checkLibraryIsLoaded;
-
final List<_AsyncStarFrame> _asyncStarFrames = [];
bool _enclosingIsAsyncStar = false;
@@ -164,10 +161,6 @@
.getTopLevelProcedure('dart:async', '_trySetStackTrace'),
_trySetStackTrace = coreTypes.index
.getProcedure('dart:core', 'Error', '_trySetStackTrace'),
- _loadLibrary = coreTypes.index
- .getTopLevelProcedure("dart:_internal", "loadLibrary"),
- _checkLibraryIsLoaded = coreTypes.index
- .getTopLevelProcedure("dart:_internal", "checkLibraryIsLoaded"),
_factorySpecializer = FactorySpecializer(coreTypes),
_pushPopWasmArrayTransformer = PushPopWasmArrayTransformer(coreTypes);
@@ -839,30 +832,6 @@
}
@override
- TreeNode visitLoadLibrary(LoadLibrary node) {
- node.transformChildren(this);
- final import = node.import;
- return StaticInvocation(
- _loadLibrary,
- Arguments([
- StringLiteral('${import.enclosingLibrary.importUri}'),
- StringLiteral(import.name!)
- ]));
- }
-
- @override
- TreeNode visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
- node.transformChildren(this);
- final import = node.import;
- return StaticInvocation(
- _checkLibraryIsLoaded,
- Arguments([
- StringLiteral('${import.enclosingLibrary.importUri}'),
- StringLiteral(import.name!)
- ]));
- }
-
- @override
TreeNode visitThrow(Throw node) {
node.transformChildren(this);
if (node.forErrorHandling) {
diff --git a/pkg/dart2wasm/test/ir_tests/deferred.constant.wat b/pkg/dart2wasm/test/ir_tests/deferred.constant.wat
index 8abd4bf..d9f9f94 100644
--- a/pkg/dart2wasm/test/ir_tests/deferred.constant.wat
+++ b/pkg/dart2wasm/test/ir_tests/deferred.constant.wat
@@ -29,17 +29,17 @@
(global $S.globalH0Foo (import "S" "globalH0Foo") externref)
(global $global29 (ref $#DummyStruct) <...>)
(global $"C28 _InterfaceType" (ref $_InterfaceType) <...>)
- (global $"C333 \"h0\"" (ref $JSStringImpl) <...>)
- (global $"C372 _FunctionType" (ref $_FunctionType) <...>)
+ (global $"C334 \"h0\"" (ref $JSStringImpl) <...>)
+ (global $"C373 _FunctionType" (ref $_FunctionType) <...>)
(global $global32 (ref $#Vtable-1-1) <...>)
- (global $"C376 _FunctionType" (ref $_FunctionType) <...>)
- (global $"C377 globalH1Foo tear-off" (mut (ref null $#Closure-1-1))
+ (global $"C377 _FunctionType" (ref $_FunctionType) <...>)
+ (global $"C378 globalH1Foo tear-off" (mut (ref null $#Closure-1-1))
(ref.null none))
- (global $"C378 InstantiationConstant(globalH1Foo<int>)" (mut (ref null $#Closure-0-1))
+ (global $"C379 InstantiationConstant(globalH1Foo<int>)" (mut (ref null $#Closure-0-1))
(ref.null none))
- (global $"C379 H1" (mut (ref null $H1))
+ (global $"C380 H1" (mut (ref null $H1))
(ref.null none))
- (global $"C386 \"globalH1Bar<\"" (ref $JSStringImpl)
+ (global $"C387 \"globalH1Bar<\"" (ref $JSStringImpl)
(i32.const 4)
(i32.const 0)
(global.get $S.globalH1Bar<)
@@ -59,7 +59,7 @@
(func $#dummy function (ref struct) -> (ref null #Top) (param $var0 (ref struct)) (result (ref null $#Top)) <...>)
(func $print (param $var0 (ref null $#Top)) (result (ref null $#Top)) <...>)
(func $"modMainUseH0 <noInline>"
- global.get $"C333 \"h0\""
+ global.get $"C334 \"h0\""
call $checkLibraryIsLoaded
block $label0 (result (ref $H0))
global.get $"C398 H0"
@@ -68,7 +68,7 @@
end $label0
call $print
drop
- global.get $"C333 \"h0\""
+ global.get $"C334 \"h0\""
call $checkLibraryIsLoaded
block $label1 (result (ref $H0))
global.get $"C398 H0"
@@ -100,28 +100,28 @@
)
(func $dynamic call entry (param $var0 (ref $#ClosureBase)) (param $var1 (ref $Array<_Type>)) (param $var2 (ref $Array<Object?>)) (param $var3 (ref $Array<Object?>)) (result (ref null $#Top)) <...>)
(func $instantiation constant trampoline (param $var0 (ref struct)) (param $var1 (ref null $#Top)) (result (ref null $#Top)) <...>)
- (func $"C379 H1 (lazy initializer)}" (export "func0") (result (ref $H1))
+ (func $"C380 H1 (lazy initializer)}" (export "func0") (result (ref $H1))
(local $var0 (ref $#Closure-1-1))
(local $var1 (ref $#Closure-0-1))
(local $var2 (ref $H1))
i32.const 106
i32.const 0
block $label0 (result (ref $#Closure-0-1))
- global.get $"C378 InstantiationConstant(globalH1Foo<int>)"
+ global.get $"C379 InstantiationConstant(globalH1Foo<int>)"
br_on_non_null $label0
i32.const 37
i32.const 0
block $label1 (result (ref $#Closure-1-1))
- global.get $"C377 globalH1Foo tear-off"
+ global.get $"C378 globalH1Foo tear-off"
br_on_non_null $label1
i32.const 37
i32.const 0
global.get $global29
global.get $global32
- global.get $"C376 _FunctionType"
+ global.get $"C377 _FunctionType"
struct.new $#Closure-1-1
local.tee $var0
- global.set $"C377 globalH1Foo tear-off"
+ global.set $"C378 globalH1Foo tear-off"
local.get $var0
end $label1
global.get $"C28 _InterfaceType"
@@ -130,15 +130,15 @@
ref.func $"#dummy function (ref struct) -> (ref null #Top)"
ref.func $"instantiation constant trampoline"
struct.new $#Vtable-0-1
- global.get $"C372 _FunctionType"
+ global.get $"C373 _FunctionType"
struct.new $#Closure-0-1
local.tee $var1
- global.set $"C378 InstantiationConstant(globalH1Foo<int>)"
+ global.set $"C379 InstantiationConstant(globalH1Foo<int>)"
local.get $var1
end $label0
struct.new $H1
local.tee $var2
- global.set $"C379 H1"
+ global.set $"C380 H1"
local.get $var2
)
(func $"globalH0Foo tear-off dynamic call entry" (param $var0 (ref $#ClosureBase)) (param $var1 (ref $Array<_Type>)) (param $var2 (ref $Array<Object?>)) (param $var3 (ref $Array<Object?>)) (result (ref null $#Top))
@@ -169,7 +169,7 @@
i32.const 0
global.get $global29
global.get $global35
- global.get $"C372 _FunctionType"
+ global.get $"C373 _FunctionType"
struct.new $#Closure-0-1
local.tee $var0
global.set $"C397 globalH0Foo tear-off"
diff --git a/pkg/dart2wasm/test/ir_tests/deferred.constant_module1.wat b/pkg/dart2wasm/test/ir_tests/deferred.constant_module1.wat
index dc73c20..dd0005d 100644
--- a/pkg/dart2wasm/test/ir_tests/deferred.constant_module1.wat
+++ b/pkg/dart2wasm/test/ir_tests/deferred.constant_module1.wat
@@ -12,7 +12,7 @@
(field $field1 (mut i32))
(field $fun (ref $#Closure-0-1)))))
(type $BoxedInt <...>)
- (func $"C379 H1 (lazy initializer)}" (import "module0" "func0") (result (ref $H1)))
+ (func $"C380 H1 (lazy initializer)}" (import "module0" "func0") (result (ref $H1)))
(func $print (import "module0" "func1") (param (ref null $#Top)) (result (ref null $#Top)))
(func $JSStringImpl._interpolate (import "module0" "func2") (param (ref $Array<Object?>)) (result (ref $JSStringImpl)))
(global $module0.global0 (import "module0" "global0") (ref null $H1))
@@ -24,14 +24,14 @@
block $label0 (result (ref $H1))
global.get $module0.global0
br_on_non_null $label0
- call $"C379 H1 (lazy initializer)}"
+ call $"C380 H1 (lazy initializer)}"
end $label0
call $print
drop
block $label1 (result (ref $H1))
global.get $module0.global0
br_on_non_null $label1
- call $"C379 H1 (lazy initializer)}"
+ call $"C380 H1 (lazy initializer)}"
end $label1
struct.get $H1 $fun
local.tee $var0
diff --git a/pkg/dart2wasm/test/ir_tests/hello.wat b/pkg/dart2wasm/test/ir_tests/hello.wat
index 7826560..e94dde2 100644
--- a/pkg/dart2wasm/test/ir_tests/hello.wat
+++ b/pkg/dart2wasm/test/ir_tests/hello.wat
@@ -5,12 +5,12 @@
(field $field0 i32)
(field $_ref externref))))
(global $"S.hello world" (import "S" "hello world") externref)
- (global $"C327 \"hello world\"" (ref $JSStringImpl)
+ (global $"C329 \"hello world\"" (ref $JSStringImpl)
(i32.const 4)
(global.get $"S.hello world")
(struct.new $JSStringImpl))
(func $"main <noInline>"
- global.get $"C327 \"hello world\""
+ global.get $"C329 \"hello world\""
call $print
)
(func $print (param $var0 (ref $#Top)) <...>)
diff --git a/pkg/dart2wasm/test/ir_tests/interop.double.wat b/pkg/dart2wasm/test/ir_tests/interop.double.wat
index 1573b44..4e70fc7 100644
--- a/pkg/dart2wasm/test/ir_tests/interop.double.wat
+++ b/pkg/dart2wasm/test/ir_tests/interop.double.wat
@@ -38,7 +38,7 @@
if (result (ref null $BoxedDouble))
ref.null none
else
- i32.const 76
+ i32.const 77
local.get $var0
call $"dart2wasm._147 (import)"
struct.new $BoxedDouble
@@ -78,7 +78,7 @@
call $"ktrue implicit getter"
end
if (result (ref null $BoxedDouble))
- i32.const 76
+ i32.const 77
global.get $"doubleValue initialized"
if (result f64)
global.get $doubleValue
@@ -115,7 +115,7 @@
if (result (ref null $BoxedDouble))
ref.null none
else
- i32.const 76
+ i32.const 77
local.get $var1
call $"dart2wasm._147 (import)"
struct.new $BoxedDouble
diff --git a/pkg/dart2wasm/test/ir_tests/interop.int.wat b/pkg/dart2wasm/test/ir_tests/interop.int.wat
index c43b70a..6e8c338 100644
--- a/pkg/dart2wasm/test/ir_tests/interop.int.wat
+++ b/pkg/dart2wasm/test/ir_tests/interop.int.wat
@@ -37,7 +37,7 @@
if (result (ref null $BoxedInt))
ref.null none
else
- i32.const 63
+ i32.const 60
local.get $var0
call $dartifyInt
struct.new $BoxedInt
@@ -78,7 +78,7 @@
call $"ktrue implicit getter"
end
if (result (ref null $BoxedInt))
- i32.const 63
+ i32.const 60
global.get $"intValue initialized"
if (result i64)
global.get $intValue
@@ -108,7 +108,7 @@
if (result (ref null $BoxedInt))
ref.null none
else
- i32.const 63
+ i32.const 60
local.get $var1
call $dartifyInt
struct.new $BoxedInt
diff --git a/pkg/dart2wasm/test/ir_tests/interop.num.wat b/pkg/dart2wasm/test/ir_tests/interop.num.wat
index c1ed442..b4a4ae7 100644
--- a/pkg/dart2wasm/test/ir_tests/interop.num.wat
+++ b/pkg/dart2wasm/test/ir_tests/interop.num.wat
@@ -18,14 +18,14 @@
(func $"dart2wasm._275 (import)" (import "dart2wasm" "_275") (param externref) (result externref))
(func $"dart2wasm._147 (import)" (import "dart2wasm" "_147") (param externref) (result f64))
(func $"dart2wasm._148 (import)" (import "dart2wasm" "_148") (param f64) (result externref))
- (global $"C66 WasmArray<WasmArray<_Type>>[727]" (ref $Array<WasmArray<_Type>>) <...>)
- (global $"C311 _TopType" (ref $_TopType) <...>)
+ (global $"C66 WasmArray<WasmArray<_Type>>[766]" (ref $Array<WasmArray<_Type>>) <...>)
+ (global $"C313 _TopType" (ref $_TopType) <...>)
(global $"numValueNullable initialized" (mut i32) <...>)
(global $numValueNullable (mut (ref null $#Top)) <...>)
(global $"ktrue initialized" (mut i32) <...>)
(global $ktrue (mut i32) <...>)
(global $numValue (mut (ref null $#Top)) <...>)
- (table $dtable2 666 funcref <...>)
+ (table $dtable2 699 funcref <...>)
(func $_TypeUniverse.isSubtype (param $var0 (ref $_Type)) (param $var1 (ref null $_Environment)) (param $var2 (ref $_Type)) (param $var3 (ref null $_Environment)) (result i32) <...>)
(func $_TypeUniverse._checkSubclassRelationshipViaTable (param $var0 i32) (param $var1 i32) (result i32) <...>)
(func $_TypeUniverse.substituteTypeArgument (param $var0 (ref $_Type)) (param $var1 (ref $Array<_Type>)) (result (ref $_Type)) <...>)
@@ -70,7 +70,7 @@
if (result (ref null $BoxedDouble))
ref.null none
else
- i32.const 76
+ i32.const 77
local.get $var0
call $"dart2wasm._147 (import)"
struct.new $BoxedDouble
@@ -143,13 +143,13 @@
local.get $var1
struct.get $#Top $field0
local.tee $var0
- i32.const 63
+ i32.const 60
i32.eq
br_if $label2
drop
i32.const 1
local.get $var0
- i32.const 76
+ i32.const 77
i32.eq
br_if $label2
drop
@@ -163,7 +163,7 @@
end
local.get $var1
struct.get $#Top $field0
- i32.const 90
+ i32.const 91
i32.sub
local.tee $var0
i32.const 9
@@ -178,13 +178,13 @@
local.tee $var2
struct.get $#Top $field0
local.tee $var0
- i32.const 167
+ i32.const 170
i32.eq
if (result i32)
i32.const 0
else
local.get $var0
- i32.const 167
+ i32.const 170
call $_TypeUniverse._checkSubclassRelationshipViaTable
end
local.tee $var0
@@ -193,13 +193,13 @@
if (result i32)
i32.const 0
else
- global.get $"C311 _TopType"
+ global.get $"C313 _TopType"
local.set $var3
block $label3 (result i32)
local.get $var2
local.get $var2
struct.get $#Top $field0
- i32.const 327
+ i32.const 333
i32.add
call_indirect (param (ref $#Top)) (result (ref $Array<_Type>))
local.set $var4
@@ -215,7 +215,7 @@
call $_TypeUniverse.isSubtype
br $label3
end
- global.get $"C66 WasmArray<WasmArray<_Type>>[727]"
+ global.get $"C66 WasmArray<WasmArray<_Type>>[766]"
local.get $var0
array.get $Array<WasmArray<_Type>>
i32.const 0
@@ -233,7 +233,7 @@
else
local.get $var2
struct.get $#Top $field0
- i32.const 89
+ i32.const 90
i32.eq
if
unreachable
@@ -256,7 +256,7 @@
if (result (ref null $BoxedDouble))
ref.null none
else
- i32.const 76
+ i32.const 77
local.get $var5
call $"dart2wasm._147 (import)"
struct.new $BoxedDouble
diff --git a/pkg/dart2wasm/test/ir_tests/interop.string.wat b/pkg/dart2wasm/test/ir_tests/interop.string.wat
index 79aa082..27cd0eb 100644
--- a/pkg/dart2wasm/test/ir_tests/interop.string.wat
+++ b/pkg/dart2wasm/test/ir_tests/interop.string.wat
@@ -11,11 +11,11 @@
(global $"ktrue initialized" (mut i32) <...>)
(global $ktrue (mut i32) <...>)
(global $stringValue (mut (ref null $JSStringImpl)) <...>)
- (global $"C358 \"a\"" (ref $JSStringImpl) <...>)
+ (global $"C360 \"a\"" (ref $JSStringImpl) <...>)
(func $new JSStringImpl.fromRef (param $var0 externref) (result (ref $JSStringImpl)) <...>)
(func $"testStringConstant <noInline>"
(local $var0 externref)
- global.get $"C358 \"a\""
+ global.get $"C360 \"a\""
struct.get $JSStringImpl $_ref
call $"dart2wasm._274 (import)"
local.tee $var0
diff --git a/pkg/front_end/lib/src/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/kernel/constant_evaluator.dart
index f830233..bf93712 100644
--- a/pkg/front_end/lib/src/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/kernel/constant_evaluator.dart
@@ -2361,6 +2361,16 @@
}
@override
+ TreeNode visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node,
+ TreeNode? removalSentinel,
+ ) {
+ return transformOrRemove(node.expression, removalSentinel) ??
+ // Coverage-ignore(suite): Not run.
+ node.expression;
+ }
+
+ @override
TreeNode visitStaticInvocation(
StaticInvocation node,
TreeNode? removalSentinel,
@@ -5930,6 +5940,13 @@
"Unsupported auxiliary expression ${node} (${node.runtimeType}).",
);
}
+
+ @override
+ Constant visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node,
+ ) {
+ return node.expression.accept(this);
+ }
}
class StatementConstantEvaluator
diff --git a/pkg/front_end/lib/src/type_inference/inference_results.dart b/pkg/front_end/lib/src/type_inference/inference_results.dart
index 0ecdc2b..3d0a726 100644
--- a/pkg/front_end/lib/src/type_inference/inference_results.dart
+++ b/pkg/front_end/lib/src/type_inference/inference_results.dart
@@ -171,6 +171,11 @@
List<VariableDeclaration>? hoistedArguments = this.hoistedArguments;
if (hoistedArguments == null || hoistedArguments.isEmpty) {
return expression;
+ } else if (expression is RedirectingFactoryInvocation) {
+ return InvocationInferenceResult._insertHoistedExpressions(
+ expression,
+ hoistedArguments,
+ );
} else {
assert(
expression is InvocationExpression || expression is InvalidExpression,
diff --git a/pkg/front_end/lib/src/type_inference/inference_visitor.dart b/pkg/front_end/lib/src/type_inference/inference_visitor.dart
index a4df663..57f53d1 100644
--- a/pkg/front_end/lib/src/type_inference/inference_visitor.dart
+++ b/pkg/front_end/lib/src/type_inference/inference_visitor.dart
@@ -771,6 +771,15 @@
@override
// Coverage-ignore(suite): Not run.
+ ExpressionInferenceResult visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node,
+ DartType typeContext,
+ ) {
+ return _unhandledExpression(node, typeContext);
+ }
+
+ @override
+ // Coverage-ignore(suite): Not run.
ExpressionInferenceResult visitListConcatenation(
ListConcatenation node,
DartType typeContext,
@@ -2558,10 +2567,9 @@
required bool isConst,
required bool hasInferredTypeArguments,
}) {
- Procedure initialTarget = target;
Expression replacementNode;
- _RedirectionTarget redirectionTarget = _getRedirectionTarget(initialTarget);
+ _RedirectionTarget redirectionTarget = _getRedirectionTarget(target);
Member resolvedTarget = redirectionTarget.target;
if (redirectionTarget.typeArguments.any((type) => type is UnknownType)) {
return null;
@@ -2578,7 +2586,7 @@
..fileOffset = fileOffset;
} else {
Substitution substitution = Substitution.fromPairs(
- initialTarget.function.typeParameters,
+ target.function.typeParameters,
arguments.types,
);
for (int i = 0; i < redirectionTarget.typeArguments.length; i++) {
@@ -2594,8 +2602,11 @@
arguments.types.length = redirectionTarget.typeArguments.length;
replacementNode = _buildRedirectingFactoryTargetInvocation(
- resolvedTarget,
- new Arguments(
+ redirectingFactoryTarget: target.reference != resolvedTarget.reference
+ ? target
+ : null,
+ effectiveTarget: resolvedTarget,
+ arguments: new Arguments(
arguments.positional,
types: arguments.types,
named: arguments.named,
@@ -2608,16 +2619,17 @@
return replacementNode;
}
- Expression _buildRedirectingFactoryTargetInvocation(
- Member target,
- Arguments arguments, {
+ Expression _buildRedirectingFactoryTargetInvocation({
+ required Procedure? redirectingFactoryTarget,
+ required Member effectiveTarget,
+ required Arguments arguments,
required bool isConst,
required int fileOffset,
required bool hasInferredTypeArguments,
}) {
Expression? result = problemReporting.checkStaticArguments(
compilerContext: compilerContext,
- target: target,
+ target: effectiveTarget,
arguments: arguments,
fileOffset: fileOffset,
fileUri: fileUri,
@@ -2625,8 +2637,8 @@
if (result != null) {
return result;
}
- if (target is Constructor) {
- if (isConst && !target.isConst) {
+ if (effectiveTarget is Constructor) {
+ if (isConst && !effectiveTarget.isConst) {
// Coverage-ignore-block(suite): Not run.
return problemReporting.buildProblem(
compilerContext: compilerContext,
@@ -2638,16 +2650,27 @@
}
problemReporting.checkBoundsInConstructorInvocation(
libraryFeatures: libraryFeatures,
- constructor: target,
+ constructor: effectiveTarget,
typeArguments: arguments.types,
typeEnvironment: typeSchemaEnvironment,
fileUri: fileUri,
fileOffset: fileOffset,
);
- return new ConstructorInvocation(target, arguments, isConst: isConst)
- ..fileOffset = fileOffset;
+ ConstructorInvocation constructorInvocation = new ConstructorInvocation(
+ effectiveTarget,
+ arguments,
+ isConst: isConst,
+ )..fileOffset = fileOffset;
+ if (redirectingFactoryTarget != null) {
+ return new RedirectingFactoryInvocation(
+ redirectingFactoryTarget,
+ constructorInvocation,
+ )..fileOffset = fileOffset;
+ } else {
+ return constructorInvocation;
+ }
} else {
- Procedure procedure = target as Procedure;
+ Procedure procedure = effectiveTarget as Procedure;
if (isConst && !procedure.isConst) {
// Coverage-ignore-block(suite): Not run.
if (procedure.isExtensionTypeMember) {
@@ -2673,15 +2696,26 @@
}
problemReporting.checkBoundsInFactoryInvocation(
libraryFeatures: libraryFeatures,
- factory: target,
+ factory: effectiveTarget,
typeArguments: arguments.types,
typeEnvironment: typeSchemaEnvironment,
fileUri: fileUri,
fileOffset: fileOffset,
inferred: hasInferredTypeArguments,
);
- return new StaticInvocation(target, arguments, isConst: isConst)
- ..fileOffset = fileOffset;
+ StaticInvocation factoryInvocation = new StaticInvocation(
+ effectiveTarget,
+ arguments,
+ isConst: isConst,
+ )..fileOffset = fileOffset;
+ if (redirectingFactoryTarget != null) {
+ return new RedirectingFactoryInvocation(
+ redirectingFactoryTarget,
+ factoryInvocation,
+ )..fileOffset = fileOffset;
+ } else {
+ return factoryInvocation;
+ }
}
}
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart
index 06f9c25..2460f73 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart
@@ -5,6 +5,14 @@
class C(final a) {}
class C(var a b) {}
class C(final a b) {}
+class C(var f()) {}
+class C(final f()) {}
+class C(var void f()) {}
+class C(final void f()) {}
+class C(var f<T>()) {}
+class C(final f<T>()) {}
+class C(var void f<T>()) {}
+class C(final void f<T>()) {}
enum E() {}
enum E(a) {}
@@ -13,6 +21,14 @@
enum E(final a) {}
enum E(var a b) {}
enum E(final a b) {}
+enum E(var f()) {}
+enum E(final f()) {}
+enum E(var void f()) {}
+enum E(final void f()) {}
+enum E(var f<T>()) {}
+enum E(final f<T>()) {}
+enum E(var void f<T>()) {}
+enum E(final void f<T>()) {}
extension type ET() {}
extension type ET(a) {}
@@ -21,3 +37,11 @@
extension type ET(final a) {}
extension type ET(var a b) {}
extension type ET(final a b) {}
+extension type ET(var f()) {}
+extension type ET(final f()) {}
+extension type ET(var void f()) {}
+extension type ET(final void f()) {}
+extension type ET(var f<T>()) {}
+extension type ET(final f<T>()) {}
+extension type ET(var void f<T>()) {}
+extension type ET(final void f<T>()) {}
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.expect
index a76e748..1af7096 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.expect
@@ -180,6 +180,286 @@
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
endClassDeclaration(class, })
endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
beginMetadataStar(enum)
endMetadataStar(0)
beginUncategorizedTopLevelDeclaration(enum)
@@ -354,6 +634,278 @@
endEnumBody({, })
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
beginMetadataStar(extension)
endMetadataStar(0)
beginExtensionDeclarationPrelude(extension)
@@ -500,4 +1052,244 @@
endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
endExtensionTypeDeclaration(extension, null, extension, type, })
endTopLevelDeclaration(})
-endCompilationUnit(21, )
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+endCompilationUnit(45, )
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.intertwined.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.intertwined.expect
index b01f60a..10557b8 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.intertwined.expect
@@ -308,6 +308,446 @@
listener: endTopLevelDeclaration(})
parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
listener: beginMetadataStar(enum)
listener: endMetadataStar(0)
parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
@@ -577,6 +1017,406 @@
listener: endTopLevelDeclaration(})
parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
listener: beginMetadataStar(extension)
listener: endMetadataStar(0)
parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
@@ -816,5 +1656,373 @@
listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
listener: endExtensionTypeDeclaration(extension, null, extension, type, })
listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
reportAllErrorTokens(class)
- listener: endCompilationUnit(21, )
+ listener: endCompilationUnit(45, )
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.parser.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.parser.expect
index 9ae0091..f348d0f 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.parser.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.parser.expect
@@ -5,6 +5,14 @@
class C(final a) {}
class C(var a b) {}
class C(final a b) {}
+class C(var f()) {}
+class C(final f()) {}
+class C(var void f()) {}
+class C(final void f()) {}
+class C(var f<T>()) {}
+class C(final f<T>()) {}
+class C(var void f<T>()) {}
+class C(final void f<T>()) {}
enum E() {}
enum E(a) {}
@@ -13,6 +21,14 @@
enum E(final a) {}
enum E(var a b) {}
enum E(final a b) {}
+enum E(var f()) {}
+enum E(final f()) {}
+enum E(var void f()) {}
+enum E(final void f()) {}
+enum E(var f<T>()) {}
+enum E(final f<T>()) {}
+enum E(var void f<T>()) {}
+enum E(final void f<T>()) {}
extension type ET() {}
extension type ET(a) {}
@@ -21,6 +37,14 @@
extension type ET(final a) {}
extension type ET(var a b) {}
extension type ET(final a b) {}
+extension type ET(var f()) {}
+extension type ET(final f()) {}
+extension type ET(var void f()) {}
+extension type ET(final void f()) {}
+extension type ET(var f<T>()) {}
+extension type ET(final f<T>()) {}
+extension type ET(var void f<T>()) {}
+extension type ET(final void f<T>()) {}
class[KeywordToken] C[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -30,6 +54,14 @@
class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -38,6 +70,14 @@
enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -46,4 +86,12 @@
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.scanner.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.scanner.expect
index 9ae0091..f348d0f 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.scanner.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter.dart.scanner.expect
@@ -5,6 +5,14 @@
class C(final a) {}
class C(var a b) {}
class C(final a b) {}
+class C(var f()) {}
+class C(final f()) {}
+class C(var void f()) {}
+class C(final void f()) {}
+class C(var f<T>()) {}
+class C(final f<T>()) {}
+class C(var void f<T>()) {}
+class C(final void f<T>()) {}
enum E() {}
enum E(a) {}
@@ -13,6 +21,14 @@
enum E(final a) {}
enum E(var a b) {}
enum E(final a b) {}
+enum E(var f()) {}
+enum E(final f()) {}
+enum E(var void f()) {}
+enum E(final void f()) {}
+enum E(var f<T>()) {}
+enum E(final f<T>()) {}
+enum E(var void f<T>()) {}
+enum E(final void f<T>()) {}
extension type ET() {}
extension type ET(a) {}
@@ -21,6 +37,14 @@
extension type ET(final a) {}
extension type ET(var a b) {}
extension type ET(final a b) {}
+extension type ET(var f()) {}
+extension type ET(final f()) {}
+extension type ET(var void f()) {}
+extension type ET(final void f()) {}
+extension type ET(var f<T>()) {}
+extension type ET(final f<T>()) {}
+extension type ET(var void f<T>()) {}
+extension type ET(final void f<T>()) {}
class[KeywordToken] C[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -30,6 +54,14 @@
class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -38,6 +70,14 @@
enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -46,4 +86,12 @@
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart
index 1398fce..a9244c4 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart
@@ -10,6 +10,10 @@
class C(covariant final a) {}
class C(covariant var a b) {}
class C(covariant final a b) {}
+class C(const f()) {}
+class C(const f<T>()) {}
+class C(const void f()) {}
+class C(const void f<T>()) {}
enum E(covariant a) {}
enum E(covariant a b) {}
@@ -17,6 +21,10 @@
enum E(covariant final a) {}
enum E(covariant var a b) {}
enum E(covariant final a b) {}
+enum E(const f()) {}
+enum E(const f<T>()) {}
+enum E(const void f()) {}
+enum E(const void f<T>()) {}
extension type ET(int i) {
ET(var a b) {}
@@ -28,3 +36,7 @@
extension type ET(covariant final a) {}
extension type ET(covariant var a b) {}
extension type ET(covariant final a b) {}
+extension type ET(const f()) {}
+extension type ET(const f<T>()) {}
+extension type ET(const void f()) {}
+extension type ET(const void f<T>()) {}
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect
index 8844109..515f2c0 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect
@@ -32,58 +32,106 @@
class C(covariant final a b) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:14:8: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:13:9: Can't have modifier 'const' here.
+class C(const f()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:14:9: Can't have modifier 'const' here.
+class C(const f<T>()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:15:9: Can't have modifier 'const' here.
+class C(const void f()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:16:9: Can't have modifier 'const' here.
+class C(const void f<T>()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:18:8: Can't have modifier 'covariant' in a primary constructor.
enum E(covariant a) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:15:8: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:19:8: Can't have modifier 'covariant' in a primary constructor.
enum E(covariant a b) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:16:8: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:20:8: Can't have modifier 'covariant' in a primary constructor.
enum E(covariant var a) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:17:8: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:21:8: Can't have modifier 'covariant' in a primary constructor.
enum E(covariant final a) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:18:8: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:22:8: Can't have modifier 'covariant' in a primary constructor.
enum E(covariant var a b) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:19:8: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:23:8: Can't have modifier 'covariant' in a primary constructor.
enum E(covariant final a b) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:22:6: Variables can't be declared using both 'var' and a type name.
+parser/declaring_constructors/declaring_parameter_error:24:8: Can't have modifier 'const' here.
+enum E(const f()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:25:8: Can't have modifier 'const' here.
+enum E(const f<T>()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:26:8: Can't have modifier 'const' here.
+enum E(const void f()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:27:8: Can't have modifier 'const' here.
+enum E(const void f<T>()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:30:6: Variables can't be declared using both 'var' and a type name.
ET(var a b) {}
^^^
-parser/declaring_constructors/declaring_parameter_error:25:19: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:33:19: Can't have modifier 'covariant' in a primary constructor.
extension type ET(covariant a) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:26:19: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:34:19: Can't have modifier 'covariant' in a primary constructor.
extension type ET(covariant a b) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:27:19: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:35:19: Can't have modifier 'covariant' in a primary constructor.
extension type ET(covariant var a) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:28:19: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:36:19: Can't have modifier 'covariant' in a primary constructor.
extension type ET(covariant final a) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:29:19: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:37:19: Can't have modifier 'covariant' in a primary constructor.
extension type ET(covariant var a b) {}
^^^^^^^^^
-parser/declaring_constructors/declaring_parameter_error:30:19: Can't have modifier 'covariant' in a primary constructor.
+parser/declaring_constructors/declaring_parameter_error:38:19: Can't have modifier 'covariant' in a primary constructor.
extension type ET(covariant final a b) {}
^^^^^^^^^
+parser/declaring_constructors/declaring_parameter_error:39:19: Can't have modifier 'const' here.
+extension type ET(const f()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:40:19: Can't have modifier 'const' here.
+extension type ET(const f<T>()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:41:19: Can't have modifier 'const' here.
+extension type ET(const void f()) {}
+ ^^^^^
+
+parser/declaring_constructors/declaring_parameter_error:42:19: Can't have modifier 'const' here.
+extension type ET(const void f<T>()) {}
+ ^^^^^
+
beginCompilationUnit(m)
beginMetadataStar(m)
endMetadataStar(0)
@@ -318,6 +366,150 @@
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
endClassDeclaration(class, })
endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(const)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(const)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
beginMetadataStar(enum)
endMetadataStar(0)
beginUncategorizedTopLevelDeclaration(enum)
@@ -480,6 +672,146 @@
endEnumBody({, })
endEnum(enum, enum, {, 0, })
endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(const)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(const)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
beginMetadataStar(extension)
endMetadataStar(0)
beginExtensionDeclarationPrelude(extension)
@@ -666,4 +998,128 @@
endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
endExtensionTypeDeclaration(extension, null, extension, type, })
endTopLevelDeclaration(})
-endCompilationUnit(21, )
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(const)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(const)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(const)
+ endMetadataStar(0)
+ handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+endCompilationUnit(33, )
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect
index 2db618f..2687d67 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect
@@ -403,6 +403,234 @@
listener: endTopLevelDeclaration(})
parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(const)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(const, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(const)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(const, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
listener: beginMetadataStar(enum)
listener: endMetadataStar(0)
parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
@@ -655,6 +883,214 @@
listener: endTopLevelDeclaration(})
parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(const)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(const, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(const)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(const, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
listener: beginMetadataStar(extension)
listener: endMetadataStar(0)
parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
@@ -964,5 +1400,197 @@
listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
listener: endExtensionTypeDeclaration(extension, null, extension, type, })
listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(const)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(const, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(const)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(const, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(const)
+ listener: endMetadataStar(0)
+ reportRecoverableErrorWithToken(const, Template(ExtraneousModifier))
+ listener: handleRecoverableError(Message[Template(ExtraneousModifier), Can't have modifier 'const' here., Try removing 'const'., {lexeme: const}], const, const)
+ listener: beginFormalParameter(const, MemberKind.PrimaryConstructor, null, null, const)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
reportAllErrorTokens(m)
- listener: endCompilationUnit(21, )
+ listener: endCompilationUnit(33, )
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.parser.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.parser.expect
index 0aa0a08..52ab36d 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.parser.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.parser.expect
@@ -10,6 +10,10 @@
class C(covariant final a) {}
class C(covariant var a b) {}
class C(covariant final a b) {}
+class C(const f()) {}
+class C(const f<T>()) {}
+class C(const void f()) {}
+class C(const void f<T>()) {}
enum E(covariant a) {}
enum E(covariant a b) {}
@@ -17,6 +21,10 @@
enum E(covariant final a) {}
enum E(covariant var a b) {}
enum E(covariant final a b) {}
+enum E(const f()) {}
+enum E(const f<T>()) {}
+enum E(const void f()) {}
+enum E(const void f<T>()) {}
extension type ET(int i) {
ET(var a b) {}
@@ -28,6 +36,10 @@
extension type ET(covariant final a) {}
extension type ET(covariant var a b) {}
extension type ET(covariant final a b) {}
+extension type ET(const f()) {}
+extension type ET(const f<T>()) {}
+extension type ET(const void f()) {}
+extension type ET(const void f<T>()) {}
m[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -42,6 +54,10 @@
class[KeywordToken] C[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]covariant[KeywordToken] var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -49,6 +65,10 @@
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]int[StringToken] i[StringToken])[SimpleToken] {[BeginToken]
ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -60,4 +80,8 @@
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]covariant[KeywordToken] var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.scanner.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.scanner.expect
index 0aa0a08..52ab36d 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.scanner.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.scanner.expect
@@ -10,6 +10,10 @@
class C(covariant final a) {}
class C(covariant var a b) {}
class C(covariant final a b) {}
+class C(const f()) {}
+class C(const f<T>()) {}
+class C(const void f()) {}
+class C(const void f<T>()) {}
enum E(covariant a) {}
enum E(covariant a b) {}
@@ -17,6 +21,10 @@
enum E(covariant final a) {}
enum E(covariant var a b) {}
enum E(covariant final a b) {}
+enum E(const f()) {}
+enum E(const f<T>()) {}
+enum E(const void f()) {}
+enum E(const void f<T>()) {}
extension type ET(int i) {
ET(var a b) {}
@@ -28,6 +36,10 @@
extension type ET(covariant final a) {}
extension type ET(covariant var a b) {}
extension type ET(covariant final a b) {}
+extension type ET(const f()) {}
+extension type ET(const f<T>()) {}
+extension type ET(const void f()) {}
+extension type ET(const void f<T>()) {}
m[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -42,6 +54,10 @@
class[KeywordToken] C[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]covariant[KeywordToken] var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
class[KeywordToken] C[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -49,6 +65,10 @@
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
enum[KeywordToken] E[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]int[StringToken] i[StringToken])[SimpleToken] {[BeginToken]
ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
@@ -60,4 +80,8 @@
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]covariant[KeywordToken] var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]covariant[KeywordToken] final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]const[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart
new file mode 100644
index 0000000..2460f73
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart
@@ -0,0 +1,47 @@
+class C() {}
+class C(a) {}
+class C(a b) {}
+class C(var a) {}
+class C(final a) {}
+class C(var a b) {}
+class C(final a b) {}
+class C(var f()) {}
+class C(final f()) {}
+class C(var void f()) {}
+class C(final void f()) {}
+class C(var f<T>()) {}
+class C(final f<T>()) {}
+class C(var void f<T>()) {}
+class C(final void f<T>()) {}
+
+enum E() {}
+enum E(a) {}
+enum E(a b) {}
+enum E(var a) {}
+enum E(final a) {}
+enum E(var a b) {}
+enum E(final a b) {}
+enum E(var f()) {}
+enum E(final f()) {}
+enum E(var void f()) {}
+enum E(final void f()) {}
+enum E(var f<T>()) {}
+enum E(final f<T>()) {}
+enum E(var void f<T>()) {}
+enum E(final void f<T>()) {}
+
+extension type ET() {}
+extension type ET(a) {}
+extension type ET(a b) {}
+extension type ET(var a) {}
+extension type ET(final a) {}
+extension type ET(var a b) {}
+extension type ET(final a b) {}
+extension type ET(var f()) {}
+extension type ET(final f()) {}
+extension type ET(var void f()) {}
+extension type ET(final void f()) {}
+extension type ET(var f<T>()) {}
+extension type ET(final f<T>()) {}
+extension type ET(var void f<T>()) {}
+extension type ET(final void f<T>()) {}
diff --git a/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.expect b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.expect
new file mode 100644
index 0000000..5992f43
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.expect
@@ -0,0 +1,1462 @@
+Problems reported:
+
+parser/general/declaring_parameter_pre_feature:6:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var a b) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:8:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:9:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(final f()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:10:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var void f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:10:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var void f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:11:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(final void f()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:12:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:13:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(final f<T>()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:14:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var void f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:14:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(var void f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:15:9: This requires the experimental 'declaring-constructors' language feature to be enabled.
+class C(final void f<T>()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:22:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var a b) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:24:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:25:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(final f()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:26:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var void f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:26:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var void f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:27:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(final void f()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:28:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:29:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(final f<T>()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:30:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var void f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:30:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(var void f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:31:8: This requires the experimental 'declaring-constructors' language feature to be enabled.
+enum E(final void f<T>()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:38:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var a b) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:40:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:41:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(final f()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:42:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var void f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:42:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var void f()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:43:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(final void f()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:44:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:45:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(final f<T>()) {}
+ ^^^^^
+
+parser/general/declaring_parameter_pre_feature:46:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var void f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:46:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(var void f<T>()) {}
+ ^^^
+
+parser/general/declaring_parameter_pre_feature:47:19: This requires the experimental 'declaring-constructors' language feature to be enabled.
+extension type ET(final void f<T>()) {}
+ ^^^^^
+
+beginCompilationUnit(class)
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ endFormalParameters(0, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(a)
+ endMetadataStar(0)
+ beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ handleNoType(()
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(a)
+ endMetadataStar(0)
+ beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoType(var)
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoType(final)
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(class)
+ endMetadataStar(0)
+ beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ handleIdentifier(C, classOrMixinDeclaration)
+ handleNoTypeVariables(()
+ beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleNoType())
+ handleClassExtends(null, 1)
+ handleClassNoWithClause()
+ handleImplements(null, 0)
+ handleClassHeader(class, class, null)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ endClassDeclaration(class, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ endFormalParameters(0, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(a)
+ endMetadataStar(0)
+ beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ handleNoType(()
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(a)
+ endMetadataStar(0)
+ beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoType(var)
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoType(final)
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(enum)
+ endMetadataStar(0)
+ beginUncategorizedTopLevelDeclaration(enum)
+ handleIdentifier(E, enumDeclaration)
+ beginEnum(enum)
+ handleNoTypeVariables(()
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, false)
+ handleEnumNoWithClause()
+ handleImplements(null, 0)
+ handleEnumHeader(null, enum, {)
+ beginEnumBody({)
+ handleEnumElements(}, 0)
+ endEnumBody({, })
+ endEnum(enum, enum, {, 0, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ endFormalParameters(0, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(a)
+ endMetadataStar(0)
+ beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ handleNoType(()
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(a)
+ endMetadataStar(0)
+ beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleNoType(var)
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleNoType(final)
+ handleIdentifier(a, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleIdentifier(a, typeReference)
+ handleNoTypeArguments(b)
+ handleType(a, null)
+ handleIdentifier(b, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ handleNoTypeVariables(()
+ beginFunctionTypedFormalParameter(()
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(var)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleNoType(final)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(var)
+ endMetadataStar(0)
+ beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+ beginMetadataStar(extension)
+ endMetadataStar(0)
+ beginExtensionDeclarationPrelude(extension)
+ handleNoTypeVariables(()
+ beginExtensionTypeDeclaration(null, extension, ET)
+ beginPrimaryConstructor(()
+ beginFormalParameters((, MemberKind.PrimaryConstructor)
+ beginMetadataStar(final)
+ endMetadataStar(0)
+ beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ beginTypeVariables(<)
+ beginMetadataStar(T)
+ endMetadataStar(0)
+ handleIdentifier(T, typeVariableDeclaration)
+ beginTypeVariable(T)
+ handleTypeVariablesDefined(T, 1)
+ handleNoType(T)
+ endTypeVariable(>, 0, null, null)
+ endTypeVariables(<, >)
+ beginFunctionTypedFormalParameter(<)
+ handleVoidKeyword(void)
+ beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ endFunctionTypedFormalParameter(f, null)
+ handleIdentifier(f, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ endPrimaryConstructor((, null, false, true)
+ handleImplements(null, 0)
+ beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ endExtensionTypeDeclaration(extension, null, extension, type, })
+ endTopLevelDeclaration(})
+endCompilationUnit(45, )
diff --git a/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.intertwined.expect
new file mode 100644
index 0000000..b741a47
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.intertwined.expect
@@ -0,0 +1,2094 @@
+parseUnit(class)
+ skipErrorTokens(class)
+ listener: beginCompilationUnit(class)
+ syntheticPreviousToken(class)
+ parseTopLevelDeclarationImpl(, DirectiveContext(DirectiveState.Unknown))
+ parseMetadataStar()
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, , class, null, null, null, null, DirectiveContext(DirectiveState.Unknown))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(0, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(a)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ listener: handleNoType(()
+ ensureIdentifier((, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(a)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoType(var)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoType(final)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(class)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(class, }, class, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseClassOrNamedMixinApplication(class, null, null, null, null, null, null, null, null, class)
+ listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+ ensureIdentifier(class, classOrMixinDeclaration)
+ listener: handleIdentifier(C, classOrMixinDeclaration)
+ listener: handleNoTypeVariables(()
+ listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, C)
+ parseClass(C, class, class, null, C)
+ parsePrimaryConstructorOpt(C, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(C, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseClassHeaderOpt(), class, class)
+ parseClassExtendsOpt(), DeclarationHeaderKind.Class)
+ listener: handleNoType())
+ listener: handleClassExtends(null, 1)
+ parseClassWithClauseOpt())
+ listener: handleClassNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleClassHeader(class, class, null)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.Class, C)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+ listener: endClassDeclaration(class, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(0, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(a)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ listener: handleNoType(()
+ ensureIdentifier((, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(a)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoType(var)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoType(final)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(enum)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(enum, }, enum, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseEnum(enum, null, enum)
+ listener: beginUncategorizedTopLevelDeclaration(enum)
+ ensureIdentifier(enum, enumDeclaration)
+ listener: handleIdentifier(E, enumDeclaration)
+ listener: beginEnum(enum)
+ listener: handleNoTypeVariables(()
+ parsePrimaryConstructorOpt(E, null, false)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(E, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, false)
+ parseEnumHeaderOpt(), enum)
+ parseEnumWithClauseOpt())
+ listener: handleEnumNoWithClause()
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ listener: handleEnumHeader(null, enum, {)
+ listener: beginEnumBody({)
+ listener: handleEnumElements(}, 0)
+ listener: endEnumBody({, })
+ listener: endEnum(enum, enum, {, 0, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(0, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(a)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ listener: handleNoType(()
+ ensureIdentifier((, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(a)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(a, MemberKind.PrimaryConstructor, null, null, null)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ listener: handleNoType(var)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleNoType(final)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(a, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ listener: handleIdentifier(a, typeReference)
+ listener: handleNoTypeArguments(b)
+ listener: handleType(a, null)
+ ensureIdentifier(a, formalParameterDeclaration)
+ listener: handleIdentifier(b, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleNoTypeVariables(()
+ listener: beginFunctionTypedFormalParameter(()
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(f, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(var)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(var, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleNoType(final)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(final, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(var)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(var, MemberKind.PrimaryConstructor, null, null, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, var, var)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(var, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ parseTopLevelDeclarationImpl(}, DirectiveContext(DirectiveState.Declarations))
+ parseMetadataStar(})
+ listener: beginMetadataStar(extension)
+ listener: endMetadataStar(0)
+ parseTopLevelKeywordDeclaration(extension, }, extension, null, null, null, null, DirectiveContext(DirectiveState.Declarations))
+ parseExtension(extension, null, extension)
+ listener: beginExtensionDeclarationPrelude(extension)
+ parseExtensionTypeDeclaration(extension, type, null, extension, type)
+ listener: handleNoTypeVariables(()
+ listener: beginExtensionTypeDeclaration(null, extension, ET)
+ parsePrimaryConstructorOpt(ET, null, true)
+ listener: beginPrimaryConstructor(()
+ parseFormalParameters(ET, MemberKind.PrimaryConstructor)
+ parseFormalParametersRest((, MemberKind.PrimaryConstructor)
+ listener: beginFormalParameters((, MemberKind.PrimaryConstructor)
+ parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ parseMetadataStar(()
+ listener: beginMetadataStar(final)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(final, MemberKind.PrimaryConstructor, null, null, final)
+ reportExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: handleExperimentNotEnabled(ExperimentalFlag.declaringConstructors, final, final)
+ listener: beginTypeVariables(<)
+ listener: beginMetadataStar(T)
+ listener: endMetadataStar(0)
+ listener: handleIdentifier(T, typeVariableDeclaration)
+ listener: beginTypeVariable(T)
+ listener: handleTypeVariablesDefined(T, 1)
+ listener: handleNoType(T)
+ listener: endTypeVariable(>, 0, null, null)
+ listener: endTypeVariables(<, >)
+ listener: beginFunctionTypedFormalParameter(<)
+ listener: handleVoidKeyword(void)
+ parseFormalParametersRequiredOpt(>, MemberKind.FunctionTypedParameter)
+ parseFormalParametersRest((, MemberKind.FunctionTypedParameter)
+ listener: beginFormalParameters((, MemberKind.FunctionTypedParameter)
+ listener: endFormalParameters(0, (, ), MemberKind.FunctionTypedParameter)
+ listener: endFunctionTypedFormalParameter(f, null)
+ ensureIdentifier(void, formalParameterDeclaration)
+ listener: handleIdentifier(f, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(final, null, null, null, f, null, null, FormalParameterKind.requiredPositional, MemberKind.PrimaryConstructor)
+ listener: endFormalParameters(1, (, ), MemberKind.PrimaryConstructor)
+ listener: endPrimaryConstructor((, null, false, true)
+ parseClassOrMixinOrEnumImplementsOpt())
+ listener: handleImplements(null, 0)
+ parseClassOrMixinOrExtensionBody(), DeclarationKind.ExtensionType, ET)
+ listener: beginClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, {)
+ notEofOrType(CLOSE_CURLY_BRACKET, })
+ listener: endClassOrMixinOrExtensionBody(DeclarationKind.ExtensionType, 0, {, })
+ listener: endExtensionTypeDeclaration(extension, null, extension, type, })
+ listener: endTopLevelDeclaration(})
+ reportAllErrorTokens(class)
+ listener: endCompilationUnit(45, )
diff --git a/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.parser.expect b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.parser.expect
new file mode 100644
index 0000000..f348d0f
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.parser.expect
@@ -0,0 +1,97 @@
+class C() {}
+class C(a) {}
+class C(a b) {}
+class C(var a) {}
+class C(final a) {}
+class C(var a b) {}
+class C(final a b) {}
+class C(var f()) {}
+class C(final f()) {}
+class C(var void f()) {}
+class C(final void f()) {}
+class C(var f<T>()) {}
+class C(final f<T>()) {}
+class C(var void f<T>()) {}
+class C(final void f<T>()) {}
+
+enum E() {}
+enum E(a) {}
+enum E(a b) {}
+enum E(var a) {}
+enum E(final a) {}
+enum E(var a b) {}
+enum E(final a b) {}
+enum E(var f()) {}
+enum E(final f()) {}
+enum E(var void f()) {}
+enum E(final void f()) {}
+enum E(var f<T>()) {}
+enum E(final f<T>()) {}
+enum E(var void f<T>()) {}
+enum E(final void f<T>()) {}
+
+extension type ET() {}
+extension type ET(a) {}
+extension type ET(a b) {}
+extension type ET(var a) {}
+extension type ET(final a) {}
+extension type ET(var a b) {}
+extension type ET(final a b) {}
+extension type ET(var f()) {}
+extension type ET(final f()) {}
+extension type ET(var void f()) {}
+extension type ET(final void f()) {}
+extension type ET(var f<T>()) {}
+extension type ET(final f<T>()) {}
+extension type ET(var void f<T>()) {}
+extension type ET(final void f<T>()) {}
+
+
+class[KeywordToken] C[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+enum[KeywordToken] E[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.scanner.expect b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.scanner.expect
new file mode 100644
index 0000000..f348d0f
--- /dev/null
+++ b/pkg/front_end/parser_testcases/general/declaring_parameter_pre_feature.dart.scanner.expect
@@ -0,0 +1,97 @@
+class C() {}
+class C(a) {}
+class C(a b) {}
+class C(var a) {}
+class C(final a) {}
+class C(var a b) {}
+class C(final a b) {}
+class C(var f()) {}
+class C(final f()) {}
+class C(var void f()) {}
+class C(final void f()) {}
+class C(var f<T>()) {}
+class C(final f<T>()) {}
+class C(var void f<T>()) {}
+class C(final void f<T>()) {}
+
+enum E() {}
+enum E(a) {}
+enum E(a b) {}
+enum E(var a) {}
+enum E(final a) {}
+enum E(var a b) {}
+enum E(final a b) {}
+enum E(var f()) {}
+enum E(final f()) {}
+enum E(var void f()) {}
+enum E(final void f()) {}
+enum E(var f<T>()) {}
+enum E(final f<T>()) {}
+enum E(var void f<T>()) {}
+enum E(final void f<T>()) {}
+
+extension type ET() {}
+extension type ET(a) {}
+extension type ET(a b) {}
+extension type ET(var a) {}
+extension type ET(final a) {}
+extension type ET(var a b) {}
+extension type ET(final a b) {}
+extension type ET(var f()) {}
+extension type ET(final f()) {}
+extension type ET(var void f()) {}
+extension type ET(final void f()) {}
+extension type ET(var f<T>()) {}
+extension type ET(final f<T>()) {}
+extension type ET(var void f<T>()) {}
+extension type ET(final void f<T>()) {}
+
+
+class[KeywordToken] C[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+class[KeywordToken] C[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+enum[KeywordToken] E[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+enum[KeywordToken] E[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] a[StringToken] b[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]var[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+extension[KeywordToken] type[StringToken] ET[StringToken]([BeginToken]final[KeywordToken] void[KeywordToken] f[StringToken]<[BeginToken]T[StringToken]>[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/const_redirect.dart.strong.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/const_redirect.dart.strong.outline.expect
index 42222b0..2b8e83e 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/lowering/const_redirect.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/const_redirect.dart.strong.outline.expect
@@ -25,9 +25,9 @@
typedef ImplAlias<T extends core::num> = self::_ConstImpl<T>;
class Class extends core::Object /*hasConstConstructor*/ {
final field core::List<self::Const> constants;
- constructor •({core::List<self::Const> constants = const <self::Const>[const self::_ConstImpl::•<dynamic>(), const self::_ConstImpl::•<dynamic>(), const self::_ConstImpl::•<core::String>()]}) → self::Class
+ constructor •({core::List<self::Const> constants = const <self::Const>[/*original=self::Const::impl*/ const self::_ConstImpl::•<dynamic>(), /*original=self::Const::impl*/ const self::_ConstImpl::•<dynamic>(), const self::_ConstImpl::•<core::String>()]}) → self::Class
;
- const constructor named({core::List<self::Const> constants = const <self::Const>[const self::_ConstImpl::•<dynamic>(), const self::_ConstImpl::•<dynamic>(), const self::_ConstImpl::•<core::String>()]}) → self::Class
+ const constructor named({core::List<self::Const> constants = const <self::Const>[/*original=self::Const::impl*/ const self::_ConstImpl::•<dynamic>(), /*original=self::Const::impl*/ const self::_ConstImpl::•<dynamic>(), const self::_ConstImpl::•<core::String>()]}) → self::Class
: self::Class::constants = constants, super core::Object::•()
;
static synthetic method _#new#tearOff({has-declared-initializer core::List<self::Const> constants}) → self::Class
diff --git a/pkg/front_end/testcases/dart2js/extension_types/external_with_annotations.dart.strong.outline.expect b/pkg/front_end/testcases/dart2js/extension_types/external_with_annotations.dart.strong.outline.expect
index 73b90a0..52ba65d 100644
--- a/pkg/front_end/testcases/dart2js/extension_types/external_with_annotations.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/dart2js/extension_types/external_with_annotations.dart.strong.outline.expect
@@ -74,7 +74,7 @@
static factory namedParams = self::B|constructor#namedParams;
static factory tearoff namedParams = self::B|constructor#_#namedParams#tearOff;
}
-static const field core::pragma annotation = const core::pragma::_("a pragma");
+static const field core::pragma annotation = /*original=core::pragma::•*/ const core::pragma::_("a pragma");
static extension-type-member synthetic method B|constructor#_#_#tearOff(js_::JSObject /* erasure=_interceptors::JSObject */ a) → self::B /* erasure=_interceptors::JSObject */
return self::B|constructor#_(a);
static extension-type-member method B|constructor#_(js_::JSObject /* erasure=_interceptors::JSObject */ a) → self::B /* erasure=_interceptors::JSObject */
@@ -322,5 +322,5 @@
Evaluated: StaticGet @ org-dartlang-testcase:///external_with_annotations.dart:171:4 -> InstanceConstant(const pragma{pragma.name: "a pragma", pragma.options: null})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///external_with_annotations.dart:174:4 -> InstanceConstant(const JS{JS.name: "renamedSS1.SS2.SS3"})
Evaluated: StaticGet @ org-dartlang-testcase:///external_with_annotations.dart:175:4 -> InstanceConstant(const pragma{pragma.name: "a pragma", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///external_with_annotations.dart:239:20 -> InstanceConstant(const pragma{pragma.name: "a pragma", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///external_with_annotations.dart:239:20 -> InstanceConstant(const pragma{pragma.name: "a pragma", pragma.options: null})
Extra constant evaluation: evaluated: 115, effectively constant: 85
diff --git a/pkg/front_end/testcases/dart2js/issue53804.dart.strong.outline.expect b/pkg/front_end/testcases/dart2js/issue53804.dart.strong.outline.expect
index 5921f32..397919e 100644
--- a/pkg/front_end/testcases/dart2js/issue53804.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/dart2js/issue53804.dart.strong.outline.expect
@@ -7,7 +7,7 @@
field core::double? f2;
synthetic constructor •() → self::A
;
- @core::pragma::_("vm:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("vm:never-inline")
method foo() → core::String
;
static synthetic method _#new#tearOff() → self::A
@@ -18,5 +18,5 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue53804.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "vm:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue53804.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "vm:never-inline", pragma.options: null})
Extra constant evaluation: evaluated: 2, effectively constant: 1
diff --git a/pkg/front_end/testcases/dart2js/issue54115.dart.strong.outline.expect b/pkg/front_end/testcases/dart2js/issue54115.dart.strong.outline.expect
index aa9783d..3aa5349 100644
--- a/pkg/front_end/testcases/dart2js/issue54115.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/dart2js/issue54115.dart.strong.outline.expect
@@ -8,20 +8,20 @@
;
static synthetic method _#new#tearOff(core::int? _x) → self::C
return new self::C::•(_x);
- @core::pragma::_("dart2js:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:never-inline")
method manual() → void
;
- @core::pragma::_("dart2js:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:never-inline")
method pattern() → void
;
- @core::pragma::_("dart2js:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:never-inline")
method promote() → void
;
}
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue54115.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue54115.dart:18:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue54115.dart:26:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue54115.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue54115.dart:18:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue54115.dart:26:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
Extra constant evaluation: evaluated: 5, effectively constant: 3
diff --git a/pkg/front_end/testcases/dart2js/late_fields_with_annotation.dart.strong.outline.expect b/pkg/front_end/testcases/dart2js/late_fields_with_annotation.dart.strong.outline.expect
index 59d91f6..c9b1ac9 100644
--- a/pkg/front_end/testcases/dart2js/late_fields_with_annotation.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/dart2js/late_fields_with_annotation.dart.strong.outline.expect
@@ -3,15 +3,15 @@
import "dart:core" as core;
class C extends core::Object {
- @core::pragma::_("dart2js:late:trust")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:late:trust")
late field core::int a;
- @core::pragma::_("dart2js:late:check")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:late:check")
late final [setter] field core::int b;
- @core::pragma::_("dart2js:late:trust")
- @core::pragma::_("dart2js:tryInline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:late:trust")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:tryInline")
late field core::int c;
- @core::pragma::_("dart2js:late:check")
- @core::pragma::_("dart2js:noInline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:late:check")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:noInline")
late final field core::int d;
synthetic constructor •() → self::C
;
@@ -32,10 +32,10 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:13:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:trust", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:16:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:check", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:19:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:trust", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:20:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:tryInline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:23:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:check", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:24:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:13:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:trust", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:16:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:check", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:19:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:trust", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:20:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:tryInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:23:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:late:check", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///late_fields_with_annotation.dart:24:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
Extra constant evaluation: evaluated: 7, effectively constant: 6
diff --git a/pkg/front_end/testcases/enhanced_enums/issue49429.dart.strong.outline.expect b/pkg/front_end/testcases/enhanced_enums/issue49429.dart.strong.outline.expect
index 6851719..d9e334b 100644
--- a/pkg/front_end/testcases/enhanced_enums/issue49429.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/enhanced_enums/issue49429.dart.strong.outline.expect
@@ -10,7 +10,7 @@
return new self::A::•();
}
class E extends core::_Enum /*isEnum*/ {
- enum-element static const field self::E element = const self::E::•(0, "element", const self::A::•());
+ enum-element static const field self::E element = const self::E::•(0, "element", /*original=self::A::redir*/ const self::A::•());
static const field core::List<self::E> values = const <self::E>[self::E::element];
const constructor •(core::int #index, core::String #name, self::A a) → self::E
: super core::_Enum::•(#index, #name)
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.strong.outline.expect b/pkg/front_end/testcases/extensions/annotations.dart.strong.outline.expect
index 07d0eb3..1de51ef 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.strong.outline.expect
@@ -5,10 +5,10 @@
class Class extends core::Object {
synthetic constructor •() → self::Class
;
- @core::pragma::_("dart2js:noInline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:noInline")
method instanceMethod() → dynamic
;
- @core::pragma::_("dart2js:noInline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:noInline")
static method staticMethod() → dynamic
;
}
@@ -17,15 +17,15 @@
method tearoff extensionInstanceMethod = self::Extension|get#extensionInstanceMethod;
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
-@core::pragma::_("dart2js:noInline")
+@/*original=core::pragma::•*/ const core::pragma::_("dart2js:noInline")
static extension-member method Extension|extensionInstanceMethod(lowered final self::Class #this) → dynamic
;
static extension-member method Extension|get#extensionInstanceMethod(lowered final self::Class #this) → () → dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
-@core::pragma::_("dart2js:noInline")
+@/*original=core::pragma::•*/ const core::pragma::_("dart2js:noInline")
static extension-member method Extension|extensionStaticMethod() → dynamic
;
-@core::pragma::_("dart2js:noInline")
+@/*original=core::pragma::•*/ const core::pragma::_("dart2js:noInline")
static method topLevelMethod() → dynamic
;
static method main() → dynamic
@@ -33,9 +33,9 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///annotations.dart:6:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///annotations.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///annotations.dart:14:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///annotations.dart:17:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///annotations.dart:21:2 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///annotations.dart:6:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///annotations.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///annotations.dart:14:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///annotations.dart:17:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///annotations.dart:21:2 -> InstanceConstant(const pragma{pragma.name: "dart2js:noInline", pragma.options: null})
Extra constant evaluation: evaluated: 8, effectively constant: 5
diff --git a/pkg/front_end/testcases/general/constants/no_experiments/various.dart.strong.outline.expect b/pkg/front_end/testcases/general/constants/no_experiments/various.dart.strong.outline.expect
index 40ae8e8..94e779460 100644
--- a/pkg/front_end/testcases/general/constants/no_experiments/various.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/constants/no_experiments/various.dart.strong.outline.expect
@@ -3,11 +3,11 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-static const field core::Symbol tripleShiftSymbol = const _in::Symbol::•(">>>");
+static const field core::Symbol tripleShiftSymbol = /*original=core::Symbol::•*/ const _in::Symbol::•(">>>");
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:5:40 -> SymbolConstant(#>>>)
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///various.dart:5:40 -> SymbolConstant(#>>>)
Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/general/constants/various.dart.strong.outline.expect b/pkg/front_end/testcases/general/constants/various.dart.strong.outline.expect
index 3c2a7d7..b0d339d 100644
--- a/pkg/front_end/testcases/general/constants/various.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/constants/various.dart.strong.outline.expect
@@ -263,10 +263,10 @@
static const field self::FooWithHashCodeField fooWithHashCodeField2 = const self::FooWithHashCodeField::•(42);
static const field core::bool fooWithHashCodeFieldIdentical = core::identical(self::fooWithHashCodeField1, self::fooWithHashCodeField2);
static const field core::bool fooWithHashCodeFieldEqual = self::fooWithHashCodeField1 =={core::Object::==}{(core::Object) → core::bool} self::fooWithHashCodeField2;
-static const field core::Symbol barFoo = const _in::Symbol::•("Foo");
-static const field core::Symbol barFooEqual = const _in::Symbol::•("Foo=");
-static const field core::Symbol tripleShiftSymbol = const _in::Symbol::•(">>>");
-static const field core::Symbol symbolWithDots = const _in::Symbol::•("I.Have.Dots");
+static const field core::Symbol barFoo = /*original=core::Symbol::•*/ const _in::Symbol::•("Foo");
+static const field core::Symbol barFooEqual = /*original=core::Symbol::•*/ const _in::Symbol::•("Foo=");
+static const field core::Symbol tripleShiftSymbol = /*original=core::Symbol::•*/ const _in::Symbol::•(">>>");
+static const field core::Symbol symbolWithDots = /*original=core::Symbol::•*/ const _in::Symbol::•("I.Have.Dots");
static const field core::int circularity1 = self::circularity2;
static const field core::int circularity2 = self::circularity3;
static const field core::int circularity3 = self::circularity4;
@@ -351,10 +351,10 @@
Evaluated: StaticInvocation @ org-dartlang-testcase:///various.dart:143:44 -> BoolConstant(true)
Evaluated: StaticGet @ org-dartlang-testcase:///various.dart:144:40 -> InstanceConstant(const FooWithHashCodeField{FooWithHashCodeField.x: 42, FooWithHashCodeField.y: 5, FooWithHashCodeField.hashCode: 1764})
Evaluated: StaticGet @ org-dartlang-testcase:///various.dart:144:65 -> InstanceConstant(const FooWithHashCodeField{FooWithHashCodeField.x: 42, FooWithHashCodeField.y: 5, FooWithHashCodeField.hashCode: 1764})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:146:29 -> SymbolConstant(#Foo)
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:147:34 -> SymbolConstant(#Foo=)
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:148:40 -> SymbolConstant(#>>>)
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:149:37 -> SymbolConstant(#I.Have.Dots)
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///various.dart:146:29 -> SymbolConstant(#Foo)
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///various.dart:147:34 -> SymbolConstant(#Foo=)
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///various.dart:148:40 -> SymbolConstant(#>>>)
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///various.dart:149:37 -> SymbolConstant(#I.Have.Dots)
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:171:7 -> InstanceConstant(const ClassWithTypeArguments<int, int, int>{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///various.dart:173:7 -> InstanceConstant(const ClassWithTypeArguments<dynamic, dynamic, dynamic>{})
Evaluated: StaticInvocation @ org-dartlang-testcase:///various.dart:175:1 -> BoolConstant(false)
diff --git a/pkg/front_end/testcases/general/issue45003/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue45003/main.dart.strong.outline.expect
index 818aa85..f8cb6b1 100644
--- a/pkg/front_end/testcases/general/issue45003/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue45003/main.dart.strong.outline.expect
@@ -6,7 +6,7 @@
import "org-dartlang-testcase:///foo_lib.dart";
-static const field core::Set<foo::Foo> foo = const <foo::Foo>{const bar::Bar::•<dynamic>()};
+static const field core::Set<foo::Foo> foo = const <foo::Foo>{/*original=foo::Foo::bar*/ const bar::Bar::•<dynamic>()};
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/issue45003_2.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue45003_2.dart.strong.outline.expect
index 5b13757..dc23927 100644
--- a/pkg/front_end/testcases/general/issue45003_2.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue45003_2.dart.strong.outline.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
class C extends core::Object /*hasConstConstructor*/ {
- const constructor •({dynamic x = const self::B::•<dynamic>()}) → self::C
+ const constructor •({dynamic x = /*original=self::A::foo*/ const self::B::•<dynamic>()}) → self::C
: super core::Object::•()
;
}
@@ -24,5 +24,5 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue45003_2.dart:6:30 -> InstanceConstant(const B<dynamic>{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue45003_2.dart:6:30 -> InstanceConstant(const B<dynamic>{})
Extra constant evaluation: evaluated: 2, effectively constant: 1
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue45101/main.dart.strong.outline.expect
index fc7f661..a14d1ea 100644
--- a/pkg/front_end/testcases/general/issue45101/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue45101/main.dart.strong.outline.expect
@@ -14,7 +14,7 @@
import "dart:_internal";
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
-@/* from org-dartlang-testcase:///patch_lib.dart */ const core::pragma::_("vm:entry-point")
+@/* from org-dartlang-testcase:///patch_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("vm:entry-point")
class Array<T extends core::Object? = dynamic> extends core::Object {
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>(core::int foo) → self2::Array<self2::Array::•::T%> /* redirection-target: self2::_ArraySize::•<self2::Array::•::T%>*/
diff --git a/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect
index 1bcc897..b3f211d 100644
--- a/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect
@@ -9,7 +9,7 @@
;
}
class Settings extends core::Object {
- static factory •({self::Sidebar sidebar = const self::_$_SSidebar::•()}) → self::Settings /* redirection-target: self::_SSettings::• */
+ static factory •({self::Sidebar sidebar = /*original=self::Sidebar::•*/ const self::_$_SSidebar::•()}) → self::Settings /* redirection-target: self::_SSettings::• */
return self::_SSettings::•(sidebar: sidebar);
}
class Sidebar extends core::Object {
@@ -17,12 +17,12 @@
return self::_SSidebar::•();
}
abstract class _SSettings extends core::Object implements self::Settings {
- static factory •({self::Sidebar sidebar = const self::_$_SSidebar::•()}) → self::_SSettings /* redirection-target: self::_$_SSettings::• */
+ static factory •({self::Sidebar sidebar = /*original=self::Sidebar::•*/ const self::_$_SSidebar::•()}) → self::_SSettings /* redirection-target: self::_$_SSettings::• */
return new self::_$_SSettings::•(sidebar: sidebar);
}
class _$_SSettings extends core::Object implements self::_SSettings /*hasConstConstructor*/ {
final field self::Sidebar sidebar;
- const constructor •({self::Sidebar sidebar = const self::_$_SSidebar::•()}) → self::_$_SSettings
+ const constructor •({self::Sidebar sidebar = /*original=self::Sidebar::•*/ const self::_$_SSidebar::•()}) → self::_$_SSettings
: self::_$_SSettings::sidebar = sidebar, super core::Object::•()
;
}
@@ -40,7 +40,7 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47036.dart:13:33 -> InstanceConstant(const _$_SSidebar{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47036.dart:22:37 -> InstanceConstant(const _$_SSidebar{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47036.dart:26:44 -> InstanceConstant(const _$_SSidebar{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue47036.dart:13:33 -> InstanceConstant(const _$_SSidebar{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue47036.dart:22:37 -> InstanceConstant(const _$_SSidebar{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue47036.dart:26:44 -> InstanceConstant(const _$_SSidebar{})
Extra constant evaluation: evaluated: 11, effectively constant: 3
diff --git a/pkg/front_end/testcases/general/issue47339.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue47339.dart.strong.outline.expect
index a4e8eb7..e4a543e 100644
--- a/pkg/front_end/testcases/general/issue47339.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue47339.dart.strong.outline.expect
@@ -19,16 +19,16 @@
return new self::FooGeneric::named<self::FooGeneric::namedFactory::X%>();
}
static const field self::Foo bar = const self::Foo::named();
-static const field self::Foo bar2 = const self::Foo::named();
+static const field self::Foo bar2 = /*original=self::Foo::namedFactory*/ const self::Foo::named();
static const field self::FooGeneric<core::int> barGeneric = const self::FooGeneric::named<core::int>();
-static const field self::FooGeneric<core::int> barGeneric2 = const self::FooGeneric::named<core::int>();
+static const field self::FooGeneric<core::int> barGeneric2 = /*original=self::FooGeneric::namedFactory*/ const self::FooGeneric::named<core::int>();
static method main() → dynamic
;
Extra constant evaluation status:
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47339.dart:12:11 -> InstanceConstant(const Foo{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47339.dart:14:22 -> InstanceConstant(const Foo{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue47339.dart:14:22 -> InstanceConstant(const Foo{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47339.dart:23:23 -> InstanceConstant(const FooGeneric<int>{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47339.dart:25:48 -> InstanceConstant(const FooGeneric<int>{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue47339.dart:25:48 -> InstanceConstant(const FooGeneric<int>{})
Extra constant evaluation: evaluated: 6, effectively constant: 4
diff --git a/pkg/front_end/testcases/general/issue55152.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue55152.dart.strong.outline.expect
index ef18258..388278c 100644
--- a/pkg/front_end/testcases/general/issue55152.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue55152.dart.strong.outline.expect
@@ -11,7 +11,7 @@
return new self::A::•<self::A::redir::X%>();
}
class E extends core::_Enum /*isEnum*/ {
- enum-element static const field self::E element = const self::E::•(0, "element", const self::A::•<core::String>());
+ enum-element static const field self::E element = const self::E::•(0, "element", /*original=self::A::redir*/ const self::A::•<core::String>());
final field self::A<core::String> a;
static const field core::List<self::E> values = const <self::E>[self::E::element];
const constructor •(core::int #index, core::String #name, self::A<core::String> a) → self::E
diff --git a/pkg/front_end/testcases/general/issue55152_4.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue55152_4.dart.strong.outline.expect
index c22ddd5..18df973 100644
--- a/pkg/front_end/testcases/general/issue55152_4.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue55152_4.dart.strong.outline.expect
@@ -10,8 +10,8 @@
static factory redir() → self::A /* redirection-target: self::A::• */
return new self::A::•();
}
-static const field core::List<self::A> test1 = const <self::A>[const self::A::•()];
-static const field core::List<self::A> test2 = const <self::A>[const self::A::•()];
+static const field core::List<self::A> test1 = const <self::A>[/*original=self::A::redir*/ const self::A::•()];
+static const field core::List<self::A> test2 = const <self::A>[/*original=self::A::redir*/ const self::A::•()];
static const field core::List<self::A> test3 = const <self::A>[const self::A::•()];
diff --git a/pkg/front_end/testcases/general/issue55152_5.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue55152_5.dart.strong.outline.expect
index 57cb5dd..daf7eac 100644
--- a/pkg/front_end/testcases/general/issue55152_5.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue55152_5.dart.strong.outline.expect
@@ -26,36 +26,36 @@
: self::Test::a = const self::A::•(), super core::Object::•()
;
const constructor named2() → self::Test
- : self::Test::a = const self::B::•(), super core::Object::•()
+ : self::Test::a = /*original=self::A::redir*/ const self::B::•(), super core::Object::•()
;
const constructor named3() → self::Test
: self::Test::a = const self::A::named(), super core::Object::•()
;
const constructor named4() → self::Test
- : self::Test::a = const self::A::named(), super core::Object::•()
+ : self::Test::a = /*original=self::A::selfRedir*/ const self::A::named(), super core::Object::•()
;
const constructor named5() → self::Test
: self::Test::a = const self::A::•(), super core::Object::•()
;
const constructor named6() → self::Test
- : self::Test::a = const self::B::•(), super core::Object::•()
+ : self::Test::a = /*original=self::A::redir*/ const self::B::•(), super core::Object::•()
;
const constructor named7() → self::Test
: self::Test::a = const self::A::named(), super core::Object::•()
;
const constructor named8() → self::Test
- : self::Test::a = const self::A::named(), super core::Object::•()
+ : self::Test::a = /*original=self::A::selfRedir*/ const self::A::named(), super core::Object::•()
;
}
Extra constant evaluation status:
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:21:35 -> InstanceConstant(const A{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:22:35 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55152_5.dart:22:35 -> InstanceConstant(const B{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:23:35 -> InstanceConstant(const A{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:24:35 -> InstanceConstant(const A{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55152_5.dart:24:35 -> InstanceConstant(const A{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:25:35 -> InstanceConstant(const A{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:26:35 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55152_5.dart:26:35 -> InstanceConstant(const B{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:27:35 -> InstanceConstant(const A{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55152_5.dart:28:35 -> InstanceConstant(const A{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55152_5.dart:28:35 -> InstanceConstant(const A{})
Extra constant evaluation: evaluated: 10, effectively constant: 8
diff --git a/pkg/front_end/testcases/general/issue55849_2.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue55849_2.dart.strong.outline.expect
index a89931f..0496ab0 100644
--- a/pkg/front_end/testcases/general/issue55849_2.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue55849_2.dart.strong.outline.expect
@@ -9,7 +9,7 @@
static factory redir(core::int x) → self::A /* redirection-target: self::A::• */
return new self::A::•(x);
}
-@self::A::•(1)
+@/*original=self::A::redir*/ const self::A::•(1)
static method foo(core::String y) → dynamic
;
static method main() → dynamic
@@ -17,5 +17,5 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55849_2.dart:10:2 -> InstanceConstant(const A{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_2.dart:10:2 -> InstanceConstant(const A{})
Extra constant evaluation: evaluated: 3, effectively constant: 1
diff --git a/pkg/front_end/testcases/general/issue55849_3.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue55849_3.dart.strong.outline.expect
index 3d196a8..afeb964 100644
--- a/pkg/front_end/testcases/general/issue55849_3.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue55849_3.dart.strong.outline.expect
@@ -15,14 +15,14 @@
;
}
class C extends core::Object /*hasConstConstructor*/ {
- constructor •({self::A a = const self::B::•()}) → self::C
+ constructor •({self::A a = /*original=self::A::redir*/ const self::B::•()}) → self::C
;
- const constructor c({self::A a = const self::B::•()}) → self::C
+ const constructor c({self::A a = /*original=self::A::redir*/ const self::B::•()}) → self::C
: super core::Object::•()
;
- static factory f({self::A a = const self::B::•()}) → self::C
+ static factory f({self::A a = /*original=self::A::redir*/ const self::B::•()}) → self::C
;
- method foo({self::A a = const self::B::•()}) → dynamic
+ method foo({self::A a = /*original=self::A::redir*/ const self::B::•()}) → dynamic
;
static method bar({has-declared-initializer self::A a}) → dynamic
;
@@ -48,7 +48,7 @@
;
static extension-type-member synthetic method ET|constructor#_#new#tearOff(self::C c) → self::ET% /* erasure=self::C, declared=! */
return self::ET|constructor#(c);
-static extension-type-member method ET|constructor#named(self::C c, {self::A a = const self::B::•()}) → self::ET% /* erasure=self::C, declared=! */
+static extension-type-member method ET|constructor#named(self::C c, {self::A a = /*original=self::A::redir*/ const self::B::•()}) → self::ET% /* erasure=self::C, declared=! */
;
static extension-type-member synthetic method ET|constructor#_#named#tearOff(self::C c, {has-declared-initializer self::A a}) → self::ET% /* erasure=self::C, declared=! */
return self::ET|constructor#named(c, a: a);
@@ -61,9 +61,9 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55849_3.dart:15:18 -> InstanceConstant(const B{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55849_3.dart:19:26 -> InstanceConstant(const B{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55849_3.dart:17:28 -> InstanceConstant(const B{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55849_3.dart:21:20 -> InstanceConstant(const B{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue55849_3.dart:31:30 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_3.dart:15:18 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_3.dart:19:26 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_3.dart:17:28 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_3.dart:21:20 -> InstanceConstant(const B{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue55849_3.dart:31:30 -> InstanceConstant(const B{})
Extra constant evaluation: evaluated: 19, effectively constant: 5
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.outline.expect
index 8b0793c..3e3a85c 100644
--- a/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.outline.expect
@@ -6,7 +6,7 @@
static method main() → dynamic
;
-@dart.core::pragma::_("origin-library")
+@/*original=dart.core::pragma::•*/ const dart.core::pragma::_("origin-library")
library;
import self as self2;
import "dart:core" as core;
@@ -14,55 +14,55 @@
import "dart:_internal";
-@core::pragma::_("origin-class")
+@/*original=core::pragma::•*/ const core::pragma::_("origin-class")
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
-@/* from org-dartlang-testcase:///patch_lib.dart */ const core::pragma::_("patch-class")
-class Class<@core::pragma::_("origin-class-type-variable") @/* from org-dartlang-testcase:///patch_lib.dart */ const core::pragma::_("patch-class-type-variable") T extends core::Object? = dynamic> extends core::Object {
- @/* from org-dartlang-testcase:///origin_lib.dart */ const core::pragma::_("origin-constructor")
+@/* from org-dartlang-testcase:///patch_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("patch-class")
+class Class<@/*original=core::pragma::•*/ const core::pragma::_("origin-class-type-variable") @/* from org-dartlang-testcase:///patch_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("patch-class-type-variable") T extends core::Object? = dynamic> extends core::Object {
+ @/* from org-dartlang-testcase:///origin_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("origin-constructor")
@_in::patch
- @core::pragma::_("patch-constructor")
+ @/*original=core::pragma::•*/ const core::pragma::_("patch-constructor")
external constructor /* from org-dartlang-testcase:///patch_lib.dart */ •() → self2::Class<self2::Class::T%>;
- @/* from org-dartlang-testcase:///origin_lib.dart */ const core::pragma::_("origin-procedure")
+ @/* from org-dartlang-testcase:///origin_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("origin-procedure")
@_in::patch
- @core::pragma::_("patch-procedure")
- external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@core::pragma::_("patch-method-type-variable") S extends core::Object? = dynamic>() → void;
+ @/*original=core::pragma::•*/ const core::pragma::_("patch-procedure")
+ external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@/*original=core::pragma::•*/ const core::pragma::_("patch-method-type-variable") S extends core::Object? = dynamic>() → void;
}
-@core::pragma::_("origin-extension")
+@/*original=core::pragma::•*/ const core::pragma::_("origin-extension")
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
-@/* from org-dartlang-testcase:///patch_lib.dart */ const core::pragma::_("patch-extension")
-extension Extension<@core::pragma::_("origin-extension-type-variable") @/* from org-dartlang-testcase:///patch_lib.dart */ const core::pragma::_("patch-extension-type-variable") T extends core::Object? = dynamic> on core::int {
+@/* from org-dartlang-testcase:///patch_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("patch-extension")
+extension Extension<@/*original=core::pragma::•*/ const core::pragma::_("origin-extension-type-variable") @/* from org-dartlang-testcase:///patch_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("patch-extension-type-variable") T extends core::Object? = dynamic> on core::int {
method method = self2::Extension|method;
method tearoff method = self2::Extension|get#method;
}
-@/* from org-dartlang-testcase:///origin_lib.dart */ const core::pragma::_("origin-extension-method")
+@/* from org-dartlang-testcase:///origin_lib.dart *//*original= core::pragma::•*/ const core::pragma::_("origin-extension-method")
@_in::patch
-@core::pragma::_("patch-extension-method")
-external static extension-member method /* from org-dartlang-testcase:///patch_lib.dart */ Extension|method<T extends core::Object? = dynamic, @core::pragma::_("patch-extension-method-type-variable") S extends core::Object? = dynamic>(lowered final core::int #this) → void;
+@/*original=core::pragma::•*/ const core::pragma::_("patch-extension-method")
+external static extension-member method /* from org-dartlang-testcase:///patch_lib.dart */ Extension|method<T extends core::Object? = dynamic, @/*original=core::pragma::•*/ const core::pragma::_("patch-extension-method-type-variable") S extends core::Object? = dynamic>(lowered final core::int #this) → void;
static extension-member method /* from org-dartlang-testcase:///patch_lib.dart */ Extension|get#method<T extends core::Object? = dynamic>(lowered final core::int #this) → <S extends core::Object? = dynamic>() → void
return <S extends core::Object? = dynamic>() → void => self2::Extension|method<self2::Extension|get#method::T%, S%>(#this);
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:5:2 -> InstanceConstant(const pragma{pragma.name: "origin-library", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:8:2 -> InstanceConstant(const pragma{pragma.name: "origin-class", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///origin_lib.dart:5:2 -> InstanceConstant(const pragma{pragma.name: "origin-library", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///origin_lib.dart:8:2 -> InstanceConstant(const pragma{pragma.name: "origin-class", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:9:1 -> InstanceConstant(const pragma{pragma.name: "patch-class", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:9:14 -> InstanceConstant(const pragma{pragma.name: "origin-class-type-variable", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///origin_lib.dart:9:14 -> InstanceConstant(const pragma{pragma.name: "origin-class-type-variable", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:10:13 -> InstanceConstant(const pragma{pragma.name: "patch-class-type-variable", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///origin_lib.dart:10:3 -> InstanceConstant(const pragma{pragma.name: "origin-constructor", pragma.options: null})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:11:4 -> InstanceConstant(const _Patch{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///patch_lib.dart:12:4 -> InstanceConstant(const pragma{pragma.name: "patch-constructor", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///patch_lib.dart:12:4 -> InstanceConstant(const pragma{pragma.name: "patch-constructor", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///origin_lib.dart:13:3 -> InstanceConstant(const pragma{pragma.name: "origin-procedure", pragma.options: null})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:15:4 -> InstanceConstant(const _Patch{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///patch_lib.dart:16:4 -> InstanceConstant(const pragma{pragma.name: "patch-procedure", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///patch_lib.dart:17:25 -> InstanceConstant(const pragma{pragma.name: "patch-method-type-variable", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:17:2 -> InstanceConstant(const pragma{pragma.name: "origin-extension", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///patch_lib.dart:16:4 -> InstanceConstant(const pragma{pragma.name: "patch-procedure", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///patch_lib.dart:17:25 -> InstanceConstant(const pragma{pragma.name: "patch-method-type-variable", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///origin_lib.dart:17:2 -> InstanceConstant(const pragma{pragma.name: "origin-extension", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:20:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:21:1 -> InstanceConstant(const pragma{pragma.name: "patch-extension", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:18:22 -> InstanceConstant(const pragma{pragma.name: "origin-extension-type-variable", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///origin_lib.dart:18:22 -> InstanceConstant(const pragma{pragma.name: "origin-extension-type-variable", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:22:21 -> InstanceConstant(const pragma{pragma.name: "patch-extension-type-variable", pragma.options: null})
Evaluated: FileUriExpression @ org-dartlang-testcase:///origin_lib.dart:19:3 -> InstanceConstant(const pragma{pragma.name: "origin-extension-method", pragma.options: null})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:23:4 -> InstanceConstant(const _Patch{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///patch_lib.dart:24:4 -> InstanceConstant(const pragma{pragma.name: "patch-extension-method", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///patch_lib.dart:25:25 -> InstanceConstant(const pragma{pragma.name: "patch-extension-method-type-variable", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///patch_lib.dart:24:4 -> InstanceConstant(const pragma{pragma.name: "patch-extension-method", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///patch_lib.dart:25:25 -> InstanceConstant(const pragma{pragma.name: "patch-extension-method-type-variable", pragma.options: null})
Extra constant evaluation: evaluated: 25, effectively constant: 22
diff --git a/pkg/front_end/testcases/general/redirecting_constructors_declaration_order.dart.strong.outline.expect b/pkg/front_end/testcases/general/redirecting_constructors_declaration_order.dart.strong.outline.expect
index b288ecc..cb76085 100644
--- a/pkg/front_end/testcases/general/redirecting_constructors_declaration_order.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/redirecting_constructors_declaration_order.dart.strong.outline.expect
@@ -4,7 +4,7 @@
class C extends core::Object {
field core::List<self::A> field;
- constructor •({core::List<self::A> field = const <self::A>[const self::B::•<dynamic>()]}) → self::C
+ constructor •({core::List<self::A> field = const <self::A>[/*original=self::A::redir*/ const self::B::•<dynamic>()]}) → self::C
;
}
abstract class A extends core::Object {
diff --git a/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_2.dart.strong.outline.expect b/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_2.dart.strong.outline.expect
index f58b613..6df6f15 100644
--- a/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_2.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_2.dart.strong.outline.expect
@@ -4,9 +4,9 @@
class C extends core::Object {
field core::List<self::A> field;
- constructor named1({core::List<self::A> field = const <self::A>[const self::B::•<dynamic>(0, s: "")]}) → self::C
+ constructor named1({core::List<self::A> field = const <self::A>[/*original=self::A::redir1*/ const self::B::•<dynamic>(0, s: "")]}) → self::C
;
- constructor named2({core::List<self::A> field = const <self::A>[const self::B::•<dynamic>(0, s: "")]}) → self::C
+ constructor named2({core::List<self::A> field = const <self::A>[/*original=self::A::redir1*/ const self::B::•<dynamic>(0, s: "")]}) → self::C
;
}
abstract class A extends core::Object {
diff --git a/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_3.dart.strong.outline.expect b/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_3.dart.strong.outline.expect
index 51200e0..c631fd1 100644
--- a/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_3.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/redirecting_constructors_declaration_order_3.dart.strong.outline.expect
@@ -4,9 +4,9 @@
class C extends core::Object {
field core::List<self::A<core::bool>> field;
- constructor named1({core::List<self::A<core::bool>> field = const <self::A<core::bool>>[const self::B::•<core::bool>(0, s: "")]}) → self::C
+ constructor named1({core::List<self::A<core::bool>> field = const <self::A<core::bool>>[/*original=self::A::redir1*/ const self::B::•<core::bool>(0, s: "")]}) → self::C
;
- constructor named2({core::List<self::A<core::bool>> field = const <self::A<core::bool>>[const self::B::•<core::bool>(0, s: "")]}) → self::C
+ constructor named2({core::List<self::A<core::bool>> field = const <self::A<core::bool>>[/*original=self::A::redir1*/ const self::B::•<core::bool>(0, s: "")]}) → self::C
;
}
abstract class A<X extends core::Object? = dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/general/redirecting_factory_invocation_metadata.dart.strong.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_invocation_metadata.dart.strong.outline.expect
index a370348..d837f6b 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_invocation_metadata.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_invocation_metadata.dart.strong.outline.expect
@@ -1,4 +1,4 @@
-@name::Const::internal()
+@/*original=name::Const::•*/ const name::Const::internal()
library name;
import self as self;
import "dart:core" as core;
@@ -7,15 +7,15 @@
export "org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart";
part redirecting_factory_invocation_metadata_lib.dart;
-@self::Const::internal()
-typedef Typedef1<@self::Const::internal() unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(self::Class<dynamic>, [self::Class<dynamic>]) → dynamic;
-@self::Const::internal()
-typedef Typedef2<@self::Const::internal() unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(self::Class<dynamic>, {o2: self::Class<dynamic>}) → dynamic;
-@self::Const::internal()
-typedef Typedef3<@self::Const::internal() unrelated T extends core::Object? = dynamic> = (dynamic, [dynamic]) → void;
-@self::Const::internal()
-typedef Typedef4<@self::Const::internal() unrelated T extends core::Object? = dynamic> = (dynamic, {o2: dynamic}) → void;
-@self::Const::internal()
+@/*original=self::Const::•*/ const self::Const::internal()
+typedef Typedef1<@/*original=self::Const::•*/ const self::Const::internal() unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(self::Class<dynamic>, [self::Class<dynamic>]) → dynamic;
+@/*original=self::Const::•*/ const self::Const::internal()
+typedef Typedef2<@/*original=self::Const::•*/ const self::Const::internal() unrelated T extends core::Object? = dynamic> = <T extends core::Object? = dynamic>(self::Class<dynamic>, {o2: self::Class<dynamic>}) → dynamic;
+@/*original=self::Const::•*/ const self::Const::internal()
+typedef Typedef3<@/*original=self::Const::•*/ const self::Const::internal() unrelated T extends core::Object? = dynamic> = (dynamic, [dynamic]) → void;
+@/*original=self::Const::•*/ const self::Const::internal()
+typedef Typedef4<@/*original=self::Const::•*/ const self::Const::internal() unrelated T extends core::Object? = dynamic> = (dynamic, {o2: dynamic}) → void;
+@/*original=self::Const::•*/ const self::Const::internal()
class Const extends core::Object /*hasConstConstructor*/ {
const constructor internal() → self::Const
: super core::Object::•()
@@ -23,44 +23,44 @@
static factory •() → self::Const /* redirection-target: self::Const::internal */
return new self::Const::internal();
}
-class Class<@self::Const::internal() T extends core::Object? = dynamic> extends core::Object {
- @self::Const::internal()
+class Class<@/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic> extends core::Object {
+ @/*original=self::Const::•*/ const self::Const::internal()
field <T extends core::Object? = dynamic>(dynamic, {o2: dynamic}) → Null field;
- @self::Const::internal()
+ @/*original=self::Const::•*/ const self::Const::internal()
constructor •() → self::Class<self::Class::T%>
;
- @self::Const::internal()
- method method1<@self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, [dynamic o2 = null]) → dynamic
+ @/*original=self::Const::•*/ const self::Const::internal()
+ method method1<@/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, [dynamic o2 = null]) → dynamic
;
- @self::Const::internal()
- method method2<@self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, {dynamic o2 = null}) → dynamic
+ @/*original=self::Const::•*/ const self::Const::internal()
+ method method2<@/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, {dynamic o2 = null}) → dynamic
;
}
-@self::Const::internal()
-extension Extension<@self::Const::internal() T extends core::Object? = dynamic> on self::Class<T%> {
+@/*original=self::Const::•*/ const self::Const::internal()
+extension Extension<@/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic> on self::Class<T%> {
static field field = self::Extension|field;
method method1 = self::Extension|method1;
method tearoff method1 = self::Extension|get#method1;
method method2 = self::Extension|method2;
method tearoff method2 = self::Extension|get#method2;
}
-@self::Const::internal()
+@/*original=self::Const::•*/ const self::Const::internal()
static field <T extends core::Object? = dynamic>(dynamic, [dynamic]) → Null field;
-@self::Const::internal()
+@/*original=self::Const::•*/ const self::Const::internal()
static field <T extends core::Object? = dynamic>(dynamic, [dynamic]) → Null Extension|field;
-@self::Const::internal()
-static method method1<@self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, [dynamic o2]) → dynamic
+@/*original=self::Const::•*/ const self::Const::internal()
+static method method1<@/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, [dynamic o2]) → dynamic
;
-@self::Const::internal()
-static method method2<@self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, {dynamic o2}) → dynamic
+@/*original=self::Const::•*/ const self::Const::internal()
+static method method2<@/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic>(dynamic o1, {dynamic o2}) → dynamic
;
-@self::Const::internal()
-static extension-member method Extension|method1<#T extends core::Object? = dynamic, @self::Const::internal() T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|method1::#T%> #this, dynamic o1, [dynamic o2]) → dynamic
+@/*original=self::Const::•*/ const self::Const::internal()
+static extension-member method Extension|method1<#T extends core::Object? = dynamic, @/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|method1::#T%> #this, dynamic o1, [dynamic o2]) → dynamic
;
static extension-member method Extension|get#method1<#T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|get#method1::#T%> #this) → <T extends core::Object? = dynamic>(dynamic, [dynamic]) → dynamic
return <T extends core::Object? = dynamic>(dynamic o1, [dynamic o2]) → dynamic => self::Extension|method1<self::Extension|get#method1::#T%, T%>(#this, o1, o2);
-@self::Const::internal()
-static extension-member method Extension|method2<#T extends core::Object? = dynamic, @self::Const::internal() T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|method2::#T%> #this, dynamic o1, {dynamic o2}) → dynamic
+@/*original=self::Const::•*/ const self::Const::internal()
+static extension-member method Extension|method2<#T extends core::Object? = dynamic, @/*original=self::Const::•*/ const self::Const::internal() T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|method2::#T%> #this, dynamic o1, {dynamic o2}) → dynamic
;
static extension-member method Extension|get#method2<#T extends core::Object? = dynamic>(lowered final self::Class<self::Extension|get#method2::#T%> #this) → <T extends core::Object? = dynamic>(dynamic, {o2: dynamic}) → dynamic
return <T extends core::Object? = dynamic>(dynamic o1, {dynamic o2}) → dynamic => self::Extension|method2<self::Extension|get#method2::#T%, T%>(#this, o1, o2: o2);
@@ -69,33 +69,33 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:5:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:74:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:75:19 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:78:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:79:19 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:82:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:83:24 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:85:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:86:24 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:17:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:46:14 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:56:4 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:59:4 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:60:12 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:68:4 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:69:12 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:47:4 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:88:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:89:22 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:32:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:33:10 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:41:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:42:10 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:99:4 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:100:12 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:108:4 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:109:12 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:23:2 -> InstanceConstant(const Const{})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:90:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:5:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:74:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:75:19 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:78:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:79:19 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:82:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:83:24 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:85:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:86:24 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:17:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:46:14 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:56:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:59:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:60:12 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:68:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:69:12 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:47:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:88:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:89:22 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:32:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:33:10 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:41:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:42:10 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:99:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:100:12 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:108:4 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:109:12 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:23:2 -> InstanceConstant(const Const{})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///redirecting_factory_invocation_metadata.dart:90:4 -> InstanceConstant(const Const{})
Extra constant evaluation: evaluated: 40, effectively constant: 29
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.outline.expect
index c7ca380..70d1d0a 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.outline.expect
@@ -8,9 +8,9 @@
final class StructInlineArray extends ffi::Struct {
synthetic constructor •() → self::StructInlineArray
;
- @ffi::_ArraySize::•<ffi::NativeType>(8)
+ @/*original=ffi::Array::•*/ const ffi::_ArraySize::•<ffi::NativeType>(8)
external get a0() → ffi::Array<ffi::Uint8>;
- @ffi::_ArraySize::•<ffi::NativeType>(8)
+ @/*original=ffi::Array::•*/ const ffi::_ArraySize::•<ffi::NativeType>(8)
external set a0(synthesized ffi::Array<ffi::Uint8> #externalFieldValue) → void;
}
static method main() → dynamic
@@ -18,6 +18,6 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///ffi_struct_inline_array.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 8, _ArraySize.dimension2: null, _ArraySize.dimension3: null, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///ffi_struct_inline_array.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 8, _ArraySize.dimension2: null, _ArraySize.dimension3: null, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///ffi_struct_inline_array.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 8, _ArraySize.dimension2: null, _ArraySize.dimension3: null, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///ffi_struct_inline_array.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 8, _ArraySize.dimension2: null, _ArraySize.dimension3: null, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
Extra constant evaluation: evaluated: 2, effectively constant: 2
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.outline.expect
index f333f6e..e36a709 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.outline.expect
@@ -8,9 +8,9 @@
final class StructInlineArrayMultiDimensional extends ffi::Struct {
synthetic constructor •() → self::StructInlineArrayMultiDimensional
;
- @ffi::_ArraySize::•<ffi::NativeType>(2, 2, 2)
+ @/*original=ffi::Array::•*/ const ffi::_ArraySize::•<ffi::NativeType>(2, 2, 2)
external get a0() → ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>>;
- @ffi::_ArraySize::•<ffi::NativeType>(2, 2, 2)
+ @/*original=ffi::Array::•*/ const ffi::_ArraySize::•<ffi::NativeType>(2, 2, 2)
external set a0(synthesized ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>> #externalFieldValue) → void;
}
static method main() → dynamic
@@ -18,6 +18,6 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 2, _ArraySize.dimension2: 2, _ArraySize.dimension3: 2, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 2, _ArraySize.dimension2: 2, _ArraySize.dimension3: 2, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 2, _ArraySize.dimension2: 2, _ArraySize.dimension3: 2, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:10:4 -> InstanceConstant(const _ArraySize<NativeType>{_ArraySize.dimension1: 2, _ArraySize.dimension2: 2, _ArraySize.dimension3: 2, _ArraySize.dimension4: null, _ArraySize.dimension5: null, _ArraySize.dimensions: null, _ArraySize.variableDimension: null})
Extra constant evaluation: evaluated: 2, effectively constant: 2
diff --git a/pkg/front_end/testcases/patterns/issue53804.dart.strong.outline.expect b/pkg/front_end/testcases/patterns/issue53804.dart.strong.outline.expect
index c1b767d..a3c6e43 100644
--- a/pkg/front_end/testcases/patterns/issue53804.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/patterns/issue53804.dart.strong.outline.expect
@@ -7,7 +7,7 @@
field core::double? f2;
synthetic constructor •() → self::A
;
- @core::pragma::_("vm:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("vm:never-inline")
method foo() → core::String
;
}
@@ -16,5 +16,5 @@
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue53804.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "vm:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue53804.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "vm:never-inline", pragma.options: null})
Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/patterns/issue54115.dart.strong.outline.expect b/pkg/front_end/testcases/patterns/issue54115.dart.strong.outline.expect
index f9ec183..b0929ea 100644
--- a/pkg/front_end/testcases/patterns/issue54115.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/patterns/issue54115.dart.strong.outline.expect
@@ -6,20 +6,20 @@
final field core::int? _x;
constructor •(core::int? _x) → self::C
;
- @core::pragma::_("dart2js:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:never-inline")
method manual() → void
;
- @core::pragma::_("dart2js:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:never-inline")
method pattern() → void
;
- @core::pragma::_("dart2js:never-inline")
+ @/*original=core::pragma::•*/ const core::pragma::_("dart2js:never-inline")
method promote() → void
;
}
Extra constant evaluation status:
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue54115.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue54115.dart:18:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue54115.dart:26:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue54115.dart:9:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue54115.dart:18:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
+Evaluated: RedirectingFactoryInvocation @ org-dartlang-testcase:///issue54115.dart:26:4 -> InstanceConstant(const pragma{pragma.name: "dart2js:never-inline", pragma.options: null})
Extra constant evaluation: evaluated: 3, effectively constant: 3
diff --git a/pkg/front_end/testcases/patterns/primitive_equality.dart.strong.outline.expect b/pkg/front_end/testcases/patterns/primitive_equality.dart.strong.outline.expect
index 9048b1c..ca67d89 100644
--- a/pkg/front_end/testcases/patterns/primitive_equality.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/patterns/primitive_equality.dart.strong.outline.expect
@@ -71,10 +71,10 @@
static const field core::bool g2 = const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} #a;
static const field core::bool g3 = !(#a =={core::Symbol::==}{(core::Object) → core::bool} const self::Const::•());
static const field core::bool g4 = !(const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} #a);
-static const field core::bool h1 = const _in::Symbol::•("b") =={core::Symbol::==}{(core::Object) → core::bool} const self::Const::•();
-static const field core::bool h2 = const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} const _in::Symbol::•("b");
-static const field core::bool h3 = !(const _in::Symbol::•("b") =={core::Symbol::==}{(core::Object) → core::bool} const self::Const::•());
-static const field core::bool h4 = !(const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} const _in::Symbol::•("b"));
+static const field core::bool h1 = /*original=core::Symbol::•*/ const _in::Symbol::•("b") =={core::Symbol::==}{(core::Object) → core::bool} const self::Const::•();
+static const field core::bool h2 = const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} /*original=core::Symbol::•*/ const _in::Symbol::•("b");
+static const field core::bool h3 = !(/*original=core::Symbol::•*/ const _in::Symbol::•("b") =={core::Symbol::==}{(core::Object) → core::bool} const self::Const::•());
+static const field core::bool h4 = !(const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} /*original=core::Symbol::•*/ const _in::Symbol::•("b"));
static const field core::bool i1 = core::Object =={core::Type::==}{(core::Object) → core::bool} const self::Const::•();
static const field core::bool i2 = const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} core::Object;
static const field core::bool i3 = !(core::Object =={core::Type::==}{(core::Object) → core::bool} const self::Const::•());
@@ -99,12 +99,12 @@
static const field core::bool o2 = const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} 0.5;
static const field core::bool o3 = !(0.5 =={core::num::==}{(core::Object) → core::bool} const self::Const::•());
static const field core::bool o4 = !(const self::Const::•() =={core::Object::==}{(core::Object) → core::bool} 0.5);
-static const field core::Set<core::Object?> set1 = const <core::Object?>{null, const self::Const::•(), true, 0, "", #a, const _in::Symbol::•("b"), core::Object, const <dynamic>[], const <dynamic, dynamic>{}, const <core::int>{0}, self::topLevel};
+static const field core::Set<core::Object?> set1 = const <core::Object?>{null, const self::Const::•(), true, 0, "", #a, /*original=core::Symbol::•*/ const _in::Symbol::•("b"), core::Object, const <dynamic>[], const <dynamic, dynamic>{}, const <core::int>{0}, self::topLevel};
static const field core::Set<self::A> set2 = const <self::A>{const self::A::•()};
static const field core::Set<self::B> set3 = const <self::B>{const self::B::•()};
static const field core::Set<self::C> set4 = const <self::C>{const self::C::•()};
static const field core::Set<core::double> set5 = const <core::double>{0.5};
-static const field core::Map<core::Object?, core::int> map1 = const <core::Object?, core::int>{null: 0, const self::Const::•(): 0, true: 0, 0: 0, "": 0, #a: 0, const _in::Symbol::•("b"): 0, core::Object: 0, const <dynamic>[]: 0, const <dynamic, dynamic>{}: 0, const <core::int>{0}: 0, self::topLevel: 0};
+static const field core::Map<core::Object?, core::int> map1 = const <core::Object?, core::int>{null: 0, const self::Const::•(): 0, true: 0, 0: 0, "": 0, #a: 0, /*original=core::Symbol::•*/ const _in::Symbol::•("b"): 0, core::Object: 0, const <dynamic>[]: 0, const <dynamic, dynamic>{}: 0, const <core::int>{0}: 0, self::topLevel: 0};
static const field core::Map<self::A, core::int> map2 = const <self::A, core::int>{const self::A::•(): 0};
static const field core::Map<self::B, core::int> map3 = const <self::B, core::int>{const self::B::•(): 0};
static const field core::Map<self::C, core::int> map4 = const <self::C, core::int>{const self::C::•(): 0};
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md
index 5e79b94..422d4fb 100644
--- a/pkg/kernel/binary.md
+++ b/pkg/kernel/binary.md
@@ -147,7 +147,7 @@
type ComponentFile {
UInt32 magic = 0x90ABCDEF;
- UInt32 formatVersion = 125;
+ UInt32 formatVersion = 126;
Byte[10] shortSdkHash;
List<String> problemsAsJson; // Described in problems.md.
Library[] libraries;
@@ -908,6 +908,13 @@
Arguments arguments;
}
+type RedirectingFactoryInvocation extends Expression {
+ Byte tag = 153;
+ FileOffset fileOffset;
+ MemberReference redirectingFactoryTarget;
+ Expression expression;
+}
+
type Not extends Expression {
Byte tag = 33;
FileOffset fileOffset;
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index 270d2e5..600fae6 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -2311,6 +2311,8 @@
return _readPatternAssignment();
case Tag.FileUriConstantExpression:
return _readFileUriConstantExpression();
+ case Tag.RedirectingFactoryInvocation:
+ return _readRedirectingFactoryInvocation();
default:
throw fail('unexpected expression tag: $tag');
}
@@ -2625,6 +2627,13 @@
..fileOffset = offset;
}
+ Expression _readRedirectingFactoryInvocation() {
+ int offset = readOffset();
+ return new RedirectingFactoryInvocation.byReference(
+ readNonNullMemberReference(), readExpression() as InvocationExpression)
+ ..fileOffset = offset;
+ }
+
Expression _readNot() {
int offset = readOffset();
return new Not(readExpression())..fileOffset = offset;
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index c1afc99..59ab23f 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -1857,6 +1857,14 @@
}
@override
+ void visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node) {
+ writeByte(Tag.RedirectingFactoryInvocation);
+ writeOffset(node.fileOffset);
+ writeNonNullReference(node.redirectingFactoryTargetReference);
+ writeNode(node.expression);
+ }
+
+ @override
void visitArguments(Arguments node) {
writeUInt30(node.positional.length + node.named.length);
writeNodeList(node.types);
diff --git a/pkg/kernel/lib/binary/tag.dart b/pkg/kernel/lib/binary/tag.dart
index 81ded05..123673d 100644
--- a/pkg/kernel/lib/binary/tag.dart
+++ b/pkg/kernel/lib/binary/tag.dart
@@ -110,6 +110,7 @@
static const int FunctionInvocation = 125;
static const int FunctionTearOff = 126;
static const int LocalFunctionInvocation = 127;
+ static const int RedirectingFactoryInvocation = 153;
// Statements
static const int ExpressionStatement = 61;
@@ -226,7 +227,7 @@
/// Internal version of kernel binary format.
/// Bump it when making incompatible changes in kernel binaries.
/// Keep in sync with runtime/vm/kernel_binary.h, pkg/kernel/binary.md.
- static const int BinaryFormatVersion = 125;
+ static const int BinaryFormatVersion = 126;
}
abstract class ConstantTag {
diff --git a/pkg/kernel/lib/clone.dart b/pkg/kernel/lib/clone.dart
index e7adb0c..12aa2fa8 100644
--- a/pkg/kernel/lib/clone.dart
+++ b/pkg/kernel/lib/clone.dart
@@ -269,6 +269,13 @@
}
@override
+ TreeNode visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node) {
+ return new RedirectingFactoryInvocation.byReference(
+ node.redirectingFactoryTargetReference, clone(node.expression));
+ }
+
+ @override
TreeNode visitNot(Not node) {
return new Not(clone(node.operand));
}
diff --git a/pkg/kernel/lib/src/ast/expressions.dart b/pkg/kernel/lib/src/ast/expressions.dart
index 11b2101..07d24f7 100644
--- a/pkg/kernel/lib/src/ast/expressions.dart
+++ b/pkg/kernel/lib/src/ast/expressions.dart
@@ -2742,6 +2742,84 @@
}
}
+/// Invocation of a redirecting factory constructor.
+///
+/// This wraps the actual invocation [expression] with the original redirecting
+/// factory target. This node is available only in outlines and during
+/// pre-modular transformation, and is replaced with [expression] during
+/// constant evaluation.
+class RedirectingFactoryInvocation extends Expression {
+ /// The original target of the redirecting factory invocation.
+ Reference redirectingFactoryTargetReference;
+
+ /// The invocation of the effective target.
+ InvocationExpression expression;
+
+ factory RedirectingFactoryInvocation(
+ Procedure redirectingFactoryTarget, InvocationExpression expression) {
+ assert(redirectingFactoryTarget.isRedirectingFactory);
+ return new RedirectingFactoryInvocation.byReference(
+ redirectingFactoryTarget.reference, expression);
+ }
+
+ RedirectingFactoryInvocation.byReference(
+ this.redirectingFactoryTargetReference, this.expression) {
+ expression.parent = this;
+ }
+
+ Procedure get redirectingFactoryTarget =>
+ redirectingFactoryTargetReference.asProcedure;
+
+ void set redirectingFactoryTarget(Procedure value) {
+ assert(redirectingFactoryTarget.isRedirectingFactory);
+ redirectingFactoryTargetReference = value.reference;
+ }
+
+ @override
+ DartType getStaticTypeInternal(StaticTypeContext context) {
+ return expression.getStaticTypeInternal(context);
+ }
+
+ @override
+ R accept<R>(ExpressionVisitor<R> v) =>
+ v.visitRedirectingFactoryInvocation(this);
+
+ @override
+ R accept1<R, A>(ExpressionVisitor1<R, A> v, A arg) =>
+ v.visitRedirectingFactoryInvocation(this, arg);
+
+ @override
+ void visitChildren(Visitor v) {
+ redirectingFactoryTarget.acceptReference(v);
+ expression.accept(v);
+ }
+
+ @override
+ void transformChildren(Transformer v) {
+ expression = v.transform(expression);
+ expression.parent = this;
+ }
+
+ @override
+ void transformOrRemoveChildren(RemovingTransformer v) {
+ expression = v.transform(expression);
+ expression.parent = this;
+ }
+
+ @override
+ String toString() {
+ return "RedirectingFactoryInvocation(${toStringInternal()})";
+ }
+
+ @override
+ void toTextInternal(AstPrinter printer) {
+ printer.write('/*original=');
+ printer.writeMemberName(redirectingFactoryTargetReference);
+ printer.write('*/');
+ expression.toTextInternal(printer);
+ }
+}
+
/// An explicit type instantiation of a generic function.
class Instantiation extends Expression {
Expression expression;
diff --git a/pkg/kernel/lib/src/coverage.dart b/pkg/kernel/lib/src/coverage.dart
index dfc8599..186ffba 100644
--- a/pkg/kernel/lib/src/coverage.dart
+++ b/pkg/kernel/lib/src/coverage.dart
@@ -363,6 +363,12 @@
}
@override
+ void visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node) {
+ visited.add(ExpressionKind.RedirectingFactoryInvocation);
+ node.visitChildren(this);
+ }
+
+ @override
void visitInstantiation(Instantiation node) {
visited.add(ExpressionKind.Instantiation);
node.visitChildren(this);
@@ -1408,6 +1414,7 @@
RecordIndexGet,
RecordLiteral,
RecordNameGet,
+ RedirectingFactoryInvocation,
RedirectingFactoryTearOff,
Rethrow,
SetConcatenation,
diff --git a/pkg/kernel/lib/src/equivalence.dart b/pkg/kernel/lib/src/equivalence.dart
index 18ad85b..eeb524d 100644
--- a/pkg/kernel/lib/src/equivalence.dart
+++ b/pkg/kernel/lib/src/equivalence.dart
@@ -323,6 +323,12 @@
}
@override
+ bool visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node, Node other) {
+ return strategy.checkRedirectingFactoryInvocation(this, node, other);
+ }
+
+ @override
bool visitInstantiation(Instantiation node, Node other) {
return strategy.checkInstantiation(this, node, other);
}
@@ -3038,6 +3044,27 @@
return result;
}
+ bool checkRedirectingFactoryInvocation(EquivalenceVisitor visitor,
+ RedirectingFactoryInvocation? node, Object? other) {
+ if (identical(node, other)) return true;
+ if (node is! RedirectingFactoryInvocation) return false;
+ if (other is! RedirectingFactoryInvocation) return false;
+ visitor.pushNodeState(node, other);
+ bool result = true;
+ if (!checkRedirectingFactoryInvocation_redirectingFactoryTargetReference(
+ visitor, node, other)) {
+ result = visitor.resultOnInequivalence;
+ }
+ if (!checkRedirectingFactoryInvocation_expression(visitor, node, other)) {
+ result = visitor.resultOnInequivalence;
+ }
+ if (!checkRedirectingFactoryInvocation_fileOffset(visitor, node, other)) {
+ result = visitor.resultOnInequivalence;
+ }
+ visitor.popState();
+ return result;
+ }
+
bool checkInstantiation(
EquivalenceVisitor visitor, Instantiation? node, Object? other) {
if (identical(node, other)) return true;
@@ -7554,6 +7581,26 @@
return checkExpression_fileOffset(visitor, node, other);
}
+ bool checkRedirectingFactoryInvocation_redirectingFactoryTargetReference(
+ EquivalenceVisitor visitor,
+ RedirectingFactoryInvocation node,
+ RedirectingFactoryInvocation other) {
+ return visitor.checkReferences(
+ node.redirectingFactoryTargetReference,
+ other.redirectingFactoryTargetReference,
+ 'redirectingFactoryTargetReference');
+ }
+
+ bool checkRedirectingFactoryInvocation_expression(EquivalenceVisitor visitor,
+ RedirectingFactoryInvocation node, RedirectingFactoryInvocation other) {
+ return visitor.checkNodes(node.expression, other.expression, 'expression');
+ }
+
+ bool checkRedirectingFactoryInvocation_fileOffset(EquivalenceVisitor visitor,
+ RedirectingFactoryInvocation node, RedirectingFactoryInvocation other) {
+ return checkExpression_fileOffset(visitor, node, other);
+ }
+
bool checkInstantiation_expression(
EquivalenceVisitor visitor, Instantiation node, Instantiation other) {
return visitor.checkNodes(node.expression, other.expression, 'expression');
diff --git a/pkg/kernel/lib/src/node_creator.dart b/pkg/kernel/lib/src/node_creator.dart
index b6a0441..1f8f662 100644
--- a/pkg/kernel/lib/src/node_creator.dart
+++ b/pkg/kernel/lib/src/node_creator.dart
@@ -1069,6 +1069,11 @@
case ExpressionKind.PatternAssignment:
return new PatternAssignment(_createPattern(), _createExpression())
..fileOffset = _needFileOffset();
+ case ExpressionKind.RedirectingFactoryInvocation:
+ return new RedirectingFactoryInvocation(
+ _needRedirectingFactory(),
+ _createExpressionFromKind(ExpressionKind.ConstructorInvocation)
+ as InvocationExpression);
case ExpressionKind.VariableRead:
case ExpressionKind.VariableWrite:
throw new UnimplementedError("Unimplemented support for ${kind}.");
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index 77dfd18..9a9655d 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -1655,6 +1655,14 @@
}
@override
+ void visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node) {
+ write('/*original=');
+ writeMemberReferenceFromReference(node.redirectingFactoryTargetReference);
+ write('*/');
+ writeNode(node.expression);
+ }
+
+ @override
void visitNot(Not node) {
writeSymbol('!');
writeExpression(node.operand, Precedence.PREFIX);
@@ -3153,6 +3161,10 @@
int visitConstructorInvocation(ConstructorInvocation node) => CALLEE;
@override
+ int visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node) =>
+ CALLEE;
+
+ @override
int visitNot(Not node) => PREFIX;
@override
diff --git a/pkg/kernel/lib/type_checker.dart b/pkg/kernel/lib/type_checker.dart
index 57406cd..c98bd50 100644
--- a/pkg/kernel/lib/type_checker.dart
+++ b/pkg/kernel/lib/type_checker.dart
@@ -1367,4 +1367,10 @@
throw UnimplementedError(
"Unimplemented support for $node (${node.runtimeType}).");
}
+
+ @override
+ DartType visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node) {
+ return node.expression.accept(this);
+ }
}
diff --git a/pkg/kernel/lib/visitor.dart b/pkg/kernel/lib/visitor.dart
index f85448e..63d7ae5 100644
--- a/pkg/kernel/lib/visitor.dart
+++ b/pkg/kernel/lib/visitor.dart
@@ -39,6 +39,7 @@
R visitSuperMethodInvocation(SuperMethodInvocation node);
R visitStaticInvocation(StaticInvocation node);
R visitConstructorInvocation(ConstructorInvocation node);
+ R visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node);
R visitNot(Not node);
R visitNullCheck(NullCheck node);
R visitLogicalExpression(LogicalExpression node);
@@ -155,6 +156,9 @@
R visitConstructorInvocation(ConstructorInvocation node) =>
defaultExpression(node);
@override
+ R visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node) =>
+ defaultExpression(node);
+ @override
R visitNot(Not node) => defaultExpression(node);
@override
R visitNullCheck(NullCheck node) => defaultExpression(node);
@@ -2534,6 +2538,7 @@
R visitSuperMethodInvocation(SuperMethodInvocation node, A arg);
R visitStaticInvocation(StaticInvocation node, A arg);
R visitConstructorInvocation(ConstructorInvocation node, A arg);
+ R visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node, A arg);
R visitNot(Not node, A arg);
R visitNullCheck(NullCheck node, A arg);
R visitLogicalExpression(LogicalExpression node, A arg);
@@ -2662,6 +2667,10 @@
R visitConstructorInvocation(ConstructorInvocation node, A arg) =>
defaultExpression(node, arg);
@override
+ R visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node, A arg) =>
+ defaultExpression(node, arg);
+ @override
R visitNot(Not node, A arg) => defaultExpression(node, arg);
@override
R visitNullCheck(NullCheck node, A arg) => defaultExpression(node, arg);
@@ -3053,6 +3062,13 @@
"${runtimeType}.visitFileUriExpression isn't supported.",
);
}
+
+ @override
+ R visitRedirectingFactoryInvocation(RedirectingFactoryInvocation node) {
+ throw StateError(
+ "${runtimeType}.visitRedirectingFactoryInvocation isn't supported.",
+ );
+ }
}
/// [ExpressionVisitor1InternalNodeMixin] is intended to reduce the effects of
@@ -3112,6 +3128,14 @@
"${runtimeType}.visitFileUriExpression isn't supported.",
);
}
+
+ @override
+ R visitRedirectingFactoryInvocation(
+ RedirectingFactoryInvocation node, A arg) {
+ throw StateError(
+ "${runtimeType}.visitRedirectingFactoryInvocation isn't supported.",
+ );
+ }
}
/// [ExpressionVisitorExperimentExclusionMixin] is intended to reduce the
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index f0efca6..ac5b6ad 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -1210,6 +1210,7 @@
case kStaticTearOff:
case kSwitchExpression:
case kPatternAssignment:
+ case kRedirectingFactoryInvocation:
// These nodes are internal to the front end and
// removed by the constant evaluator.
default:
diff --git a/runtime/vm/compiler/frontend/kernel_fingerprints.cc b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
index 7d0697a..427d2fa 100644
--- a/runtime/vm/compiler/frontend/kernel_fingerprints.cc
+++ b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
@@ -719,6 +719,7 @@
case kStaticTearOff:
case kSwitchExpression:
case kPatternAssignment:
+ case kRedirectingFactoryInvocation:
// These nodes are internal to the front end and
// removed by the constant evaluator.
default:
diff --git a/runtime/vm/compiler/frontend/kernel_translation_helper.cc b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
index 5e3e96b..35e571c 100644
--- a/runtime/vm/compiler/frontend/kernel_translation_helper.cc
+++ b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
@@ -2891,6 +2891,7 @@
case kStaticTearOff:
case kSwitchExpression:
case kPatternAssignment:
+ case kRedirectingFactoryInvocation:
// These nodes are internal to the front end and
// removed by the constant evaluator.
default:
diff --git a/runtime/vm/compiler/frontend/scope_builder.cc b/runtime/vm/compiler/frontend/scope_builder.cc
index 6d25cdc..cd015e5 100644
--- a/runtime/vm/compiler/frontend/scope_builder.cc
+++ b/runtime/vm/compiler/frontend/scope_builder.cc
@@ -1091,6 +1091,7 @@
case kStaticTearOff:
case kSwitchExpression:
case kPatternAssignment:
+ case kRedirectingFactoryInvocation:
// These nodes are internal to the front end and
// removed by the constant evaluator.
default:
diff --git a/runtime/vm/kernel_binary.h b/runtime/vm/kernel_binary.h
index 416892d..f5f43ad 100644
--- a/runtime/vm/kernel_binary.h
+++ b/runtime/vm/kernel_binary.h
@@ -18,7 +18,7 @@
// package:kernel/binary.md.
static const uint32_t kMagicProgramFile = 0x90ABCDEFu;
-static const uint32_t kSupportedKernelFormatVersion = 125;
+static const uint32_t kSupportedKernelFormatVersion = 126;
// Keep in sync with package:kernel/lib/binary/tag.dart
#define KERNEL_TAG_LIST(V) \
@@ -173,6 +173,7 @@
V(PatternAssignment, 150) \
V(PatternVariableDeclaration, 151) \
V(NullType, 152) \
+ V(RedirectingFactoryInvocation, 153) \
V(SpecializedVariableGet, 224) \
V(SpecializedVariableSet, 232) \
V(SpecializedIntLiteral, 240)
diff --git a/sdk/lib/_internal/wasm/lib/deferred.dart b/sdk/lib/_internal/wasm/lib/deferred.dart
index 3b4f88c..6a2704b 100644
--- a/sdk/lib/_internal/wasm/lib/deferred.dart
+++ b/sdk/lib/_internal/wasm/lib/deferred.dart
@@ -46,6 +46,8 @@
}
}
+// NOTE: We'll inject a `@pragma('wasm:entry-point')` before TFA if we need this
+// method at runtime.
Future<void> loadLibraryFromLoadId(String loadId) {
return _loading.putIfAbsent(loadId, () {
// Start module load
@@ -64,13 +66,17 @@
});
}
-Object checkLibraryIsLoadedFromLoadId(String loadId) {
+// NOTE: We'll inject a `@pragma('wasm:entry-point')` before TFA if we need this
+// method at runtime.
+bool checkLibraryIsLoadedFromLoadId(String loadId) {
if (!_loaded.contains(loadId)) {
throw DeferredLoadIdNotLoadedError(loadId);
}
return true;
}
+// NOTE: We'll inject a `@pragma('wasm:entry-point')` before TFA if we need this
+// method at runtime.
Future<void> loadLibrary(String enclosingLibraryOrLoadId, String importPrefix) {
if (_importMapping.isEmpty) {
// Only contains one unit.
@@ -135,7 +141,9 @@
});
}
-Object checkLibraryIsLoaded(
+// NOTE: We'll inject a `@pragma('wasm:entry-point')` before TFA if we need this
+// method at runtime.
+bool checkLibraryIsLoaded(
String enclosingLibraryOrLoadId,
String importPrefix,
) {
diff --git a/tools/VERSION b/tools/VERSION
index 3303327..9eb9c6b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 3
MINOR 11
PATCH 0
-PRERELEASE 67
+PRERELEASE 68
PRERELEASE_PATCH 0