Revert "Reland "[cfe,corelib] Add class 'Record' to the core library""

This reverts commit 4b6a8f35b9.

Reason for revert: Breakages in google3.

Original change's description:
> Reland "[cfe,corelib] Add class 'Record' to the core library"
>
> Part of https://github.com/dart-lang/sdk/issues/49713
>
> Change-Id: I56bfca49492d14bb561b32993fd9adfe775b7400
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259583
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Slava Egorov <vegorov@google.com>
> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I61c4db244329615d7d218484cd86601b1c737ba6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259800
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Auto-Submit: Chloe Stefantsova <cstefantsova@google.com>
This commit is contained in:
Chloe Stefantsova 2022-09-19 13:52:01 +00:00 committed by Commit Bot
parent f83c6d5e99
commit f8ef60a868
73 changed files with 24 additions and 4532 deletions

View file

@ -78,7 +78,3 @@ class Type {}
/*class: Invocation:Invocation,Object*/
class Invocation {}
/*cfe|cfe:builder.class: Record:Object,Record*/
/*analyzer.class: Record:Record,Object*/
class Record {}

View file

@ -83,7 +83,3 @@ class Type {}
/*class: Invocation:Invocation,Object*/
class Invocation {}
/*analyzer.class Record:Record,Object*/
/*cfe|cfe:builder.class: Record:Object,Record*/
class Record {}

View file

@ -17,7 +17,6 @@ import 'package:analyzer/dart/element/type_provider.dart';
import 'package:analyzer/diagnostic/diagnostic.dart';
import 'package:analyzer/error/error.dart';
import 'package:analyzer/error/listener.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/ast/ast.dart';
import 'package:analyzer/src/dart/ast/extensions.dart';
import 'package:analyzer/src/dart/element/class_hierarchy.dart';
@ -1026,16 +1025,6 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
@override
void visitNamedType(NamedType node) {
_typeArgumentsVerifier.checkNamedType(node);
bool isDartCoreRecordVisible =
_currentLibrary.featureSet.isEnabled(Feature.records) ||
FeatureSet.latestLanguageVersion().isEnabled(Feature.records);
if ((node.type?.isDartCoreRecord ?? false) && !isDartCoreRecordVisible) {
errorReporter.reportErrorForToken(
ParserErrorCode.EXPERIMENT_NOT_ENABLED, node.beginToken, [
Feature.records.enableString,
"${Feature.records.releaseVersion ?? ExperimentStatus.currentVersion}"
]);
}
super.visitNamedType(node);
}
@ -1176,23 +1165,6 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
_checkForUnqualifiedReferenceToNonLocalStaticMember(node);
}
_checkUseVerifier.checkSimpleIdentifier(node);
bool isDartCoreRecordVisible =
_currentLibrary.featureSet.isEnabled(Feature.records) ||
FeatureSet.latestLanguageVersion().isEnabled(Feature.records);
Element? staticElement = node.staticElement;
if ((staticElement is ClassElement &&
staticElement.thisType.isDartCoreRecord ||
staticElement is TypeAliasElement &&
staticElement.aliasedType.isDartCoreRecord) &&
!isDartCoreRecordVisible) {
errorReporter.reportErrorForToken(
ParserErrorCode.EXPERIMENT_NOT_ENABLED, node.beginToken, [
Feature.records.enableString,
"${Feature.records.releaseVersion ?? ExperimentStatus.currentVersion}"
]);
}
super.visitSimpleIdentifier(node);
}

View file

@ -11,7 +11,6 @@ import 'package:kernel/ast.dart'
DynamicType,
FutureOrType,
InterfaceType,
InvalidType,
Member,
Name,
NullType,
@ -347,15 +346,6 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
int charOffset,
ClassHierarchyBase? hierarchy,
{required bool hasExplicitTypeArguments}) {
if (name == "Record" &&
libraryBuilder.importUri.scheme == "dart" &&
libraryBuilder.importUri.path == "core" &&
library is SourceLibraryBuilder &&
!library.libraryFeatures.records.isEnabled) {
library.reportFeatureNotEnabled(
library.libraryFeatures.records, fileUri, charOffset, name.length);
return const InvalidType();
}
return buildAliasedTypeWithBuiltArguments(
library,
nullabilityBuilder.build(library),

View file

@ -55,7 +55,8 @@ class ConstructorReferenceBuilder {
PrefixBuilder prefix = declaration;
declaration = prefix.lookup(middle, name.charOffset, fileUri);
} else if (declaration is ClassBuilder) {
declaration = declaration.findConstructorOrFactory(
ClassBuilder cls = declaration;
declaration = cls.findConstructorOrFactory(
middle, name.charOffset, fileUri, accessingLibrary);
if (suffix == null) {
target = declaration;

View file

@ -4,7 +4,6 @@
library fasta.named_type_builder;
import 'package:front_end/src/fasta/util/helpers.dart';
import 'package:kernel/ast.dart';
import 'package:kernel/class_hierarchy.dart';
import 'package:kernel/src/legacy_erasure.dart';
@ -409,16 +408,7 @@ abstract class NamedTypeBuilder extends TypeBuilder {
DartType buildAliased(
LibraryBuilder library, TypeUse typeUse, ClassHierarchyBase? hierarchy) {
assert(hierarchy != null || isExplicit, "Cannot build $this.");
DartType builtType = _buildAliasedInternal(library, typeUse, hierarchy);
if (library is SourceLibraryBuilder &&
!checkRecordOrItsAliasAccessAllowed(builtType, library)) {
library.reportFeatureNotEnabled(library.libraryFeatures.records,
fileUri ?? library.fileUri, charOffset!, nameText.length);
}
return builtType;
return _buildAliasedInternal(library, typeUse, hierarchy);
}
DartType _buildAliasedInternal(
@ -705,15 +695,7 @@ class _ExplicitNamedTypeBuilder extends NamedTypeBuilder {
@override
DartType build(LibraryBuilder library, TypeUse typeUse,
{ClassHierarchyBase? hierarchy}) {
DartType builtType = _buildInternal(library, typeUse, hierarchy);
if (library is SourceLibraryBuilder &&
!checkRecordOrItsAliasAccessAllowed(builtType, library)) {
library.reportFeatureNotEnabled(library.libraryFeatures.records,
fileUri ?? library.fileUri, charOffset!, nameText.length);
}
return _type ??= builtType;
return _type ??= _buildInternal(library, typeUse, hierarchy);
}
}

View file

@ -47,7 +47,6 @@ class PrefixBuilder extends BuilderImpl {
@override
Uri get fileUri => parent.fileUri;
/// Lookup a member with [name] in the export scope.
Builder? lookup(String name, int charOffset, Uri fileUri) {
return exportScope.lookup(name, charOffset, fileUri);
}

View file

@ -9,8 +9,7 @@ const List<String> denylistedCoreClasses = [
"num",
"double",
"String",
"Null",
"Record",
"Null"
];
// List of special classes in dart:typed_data that can't be subclassed.

View file

@ -106,7 +106,7 @@ import '../type_inference/inference_results.dart'
import '../type_inference/type_inferrer.dart'
show TypeInferrer, InferredFunctionBody;
import '../type_inference/type_schema.dart' show UnknownType;
import '../util/helpers.dart';
import '../util/helpers.dart' show DelayedActionPerformer;
import 'collections.dart';
import 'constness.dart' show Constness;
import 'constructor_tearoff_lowering.dart';

View file

@ -419,7 +419,6 @@ class Scope extends MutableScope {
}
}
/// Lookup a member with [name] in the scope.
Builder? lookup(String name, int charOffset, Uri fileUri,
{bool isInstanceScope = true}) {
recordUse(name, charOffset);

View file

@ -2743,8 +2743,6 @@ class int extends num {}
class num {}
class Function {}
class Record {}
""";
/// A minimal implementation of dart:async that is sufficient to create an

View file

@ -2,31 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:kernel/ast.dart';
import '../source/source_library_builder.dart';
abstract class DelayedActionPerformer {
bool get hasDelayedActions;
void performDelayedActions({required bool allowFurtherDelays});
}
bool checkRecordOrItsAliasAccessAllowed(
DartType type, SourceLibraryBuilder accessorLibrary) {
Class? targetClass;
if (type is InterfaceType) {
targetClass = type.classNode;
} else if (type is TypedefType) {
DartType unaliasedType = type.unalias;
if (unaliasedType is InterfaceType) {
targetClass = unaliasedType.classNode;
}
}
return accessorLibrary.libraryFeatures.records.isEnabled ||
accessorLibrary.libraryFeatures.records.flag.isEnabledByDefault ||
!(targetClass != null &&
targetClass.parent != null &&
targetClass.name == "Record" &&
targetClass.enclosingLibrary.importUri.scheme == "dart" &&
targetClass.enclosingLibrary.importUri.path == "core");
}

View file

@ -1257,7 +1257,6 @@ following
follows
food
for
forbid
forbidden
force
forced
@ -1389,7 +1388,6 @@ head
header
headers
heading
heavier
help
helper
helpers

View file

@ -560,7 +560,6 @@ risky
rk
row
rows
rr
runtimes
rv
sanitize

View file

@ -137,7 +137,6 @@ additionalExports = (core::Deprecated,
core::Object,
core::Pattern,
core::Match,
core::Record,
core::RegExp,
core::RegExpMatch,
core::Set,

View file

@ -72,7 +72,6 @@ additionalExports = (core::Deprecated,
core::Object,
core::Pattern,
core::Match,
core::Record,
core::RegExp,
core::RegExpMatch,
core::Set,

View file

@ -133,7 +133,6 @@ additionalExports = (core::Deprecated,
core::Object,
core::Pattern,
core::Match,
core::Record,
core::RegExp,
core::RegExpMatch,
core::Set,

View file

@ -50,7 +50,6 @@ additionalExports = (asy::Future,
core::Pattern,
core::Provisional,
core::RangeError,
core::Record,
core::RegExp,
core::RegExpMatch,
core::RuneIterator,

View file

@ -50,7 +50,6 @@ additionalExports = (asy::Future,
core::Pattern,
core::Provisional,
core::RangeError,
core::Record,
core::RegExp,
core::RegExpMatch,
core::RuneIterator,

View file

@ -1,11 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart=2.17
abstract class Record {
Record create();
}
main() {}

View file

@ -1,11 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class Record extends core::Object {
synthetic constructor •() → self::Record
: super core::Object::•()
;
abstract method create() → self::Record;
}
static method main() → dynamic {}

View file

@ -1,11 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class Record extends core::Object {
synthetic constructor •() → self::Record
: super core::Object::•()
;
abstract method create() → self::Record;
}
static method main() → dynamic {}

View file

@ -1,6 +0,0 @@
// @dart = 2.17
abstract class Record {
Record create();
}
main() {}

View file

@ -1,6 +0,0 @@
// @dart = 2.17
abstract class Record {
Record create();
}
main() {}

View file

@ -1,11 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class Record extends core::Object {
synthetic constructor •() → self::Record
: super core::Object::•()
;
abstract method create() → self::Record;
}
static method main() → dynamic {}

View file

@ -1,11 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class Record extends core::Object {
synthetic constructor •() → self::Record
: super core::Object::•()
;
abstract method create() → self::Record;
}
static method main() → dynamic {}

View file

@ -1,11 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class Record extends core::Object {
synthetic constructor •() → self::Record
;
abstract method create() → self::Record;
}
static method main() → dynamic
;

View file

@ -1,11 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class Record extends core::Object {
synthetic constructor •() → self::Record
: super core::Object::•()
;
abstract method create() → self::Record;
}
static method main() → dynamic {}

View file

@ -1,69 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
abstract class A<X> {}
typedef R = Record;
typedef AR = A<Record>;
typedef RR = R;
typedef AR2 = A<R>;
typedef AR3 = A<RR>;
typedef AR4 = A<AR>;
Record foo1() => throw '';
dynamic foo2() => <Record>[];
dynamic foo3() => Record;
dynamic foo4() => List<Record>;
dynamic foo5(Record r) => null;
dynamic foo6({required Record r}) => null;
List<Record> foo7() => throw '';
dynamic foo8(List<Record> l) => null;
R foo9() => throw '';
AR foo10() => throw '';
RR foo11() => throw '';
dynamic foo12(R r) => null;
dynamic foo13(AR l) => null;
dynamic foo14(RR l) => null;
abstract class A1 extends A<Record> {}
abstract class A2 implements A<Record> {}
abstract class A3 with A<Record> {}
abstract class A4 extends AR {}
abstract class A5 extends AR2 {}
abstract class A6 extends AR3 {}
abstract class A7 extends AR4 {}
foo((int, String) record) {
bar(record); // Ok.
}
bar(Record record) {
foo(record); // Error.
}
main() {}

View file

@ -1,105 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
// foo(record); // Error.
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef AR = self::A<core::Record>;
typedef RR = core::Record;
typedef AR2 = self::A<core::Record>;
typedef AR3 = self::A<core::Record>;
typedef AR4 = self::A<self::A<core::Record>>;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
}
abstract class A1 extends self::A<core::Record> {
synthetic constructor •() → self::A1
: super self::A::•()
;
}
abstract class A2 extends core::Object implements self::A<core::Record> {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&A = core::Object with self::A<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&A
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&A {
synthetic constructor •() → self::A3
: super self::_A3&Object&A::•()
;
}
abstract class A4 extends self::A<core::Record> {
synthetic constructor •() → self::A4
: super self::A::•()
;
}
abstract class A5 extends self::A<core::Record> {
synthetic constructor •() → self::A5
: super self::A::•()
;
}
abstract class A6 extends self::A<core::Record> {
synthetic constructor •() → self::A6
: super self::A::•()
;
}
abstract class A7 extends self::A<self::A<core::Record>> {
synthetic constructor •() → self::A7
: super self::A::•()
;
}
static method foo1() → core::Record
return throw "";
static method foo2() → dynamic
return <core::Record>[];
static method foo3() → dynamic
return #C1;
static method foo4() → dynamic
return #C2;
static method foo5(core::Record r) → dynamic
return null;
static method foo6({required core::Record r = #C3}) → dynamic
return null;
static method foo7() → core::List<core::Record>
return throw "";
static method foo8(core::List<core::Record> l) → dynamic
return null;
static method foo9() → core::Record
return throw "";
static method foo10() → self::A<core::Record>
return throw "";
static method foo11() → core::Record
return throw "";
static method foo12(core::Record r) → dynamic
return null;
static method foo13(self::A<core::Record> l) → dynamic
return null;
static method foo14(core::Record l) → dynamic
return null;
static method foo((core::int, core::String) record) → dynamic {
self::bar(record);
}
static method bar(core::Record record) → dynamic {
self::foo(invalid-expression "pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
foo(record); // Error.
^" in record as{TypeError,ForNonNullableByDefault} (core::int, core::String));
}
static method main() → dynamic {}
constants {
#C1 = TypeLiteralConstant(core::Record)
#C2 = TypeLiteralConstant(core::List<core::Record>)
#C3 = null
}

View file

@ -1,105 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
// foo(record); // Error.
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef AR = self::A<core::Record>;
typedef RR = core::Record;
typedef AR2 = self::A<core::Record>;
typedef AR3 = self::A<core::Record>;
typedef AR4 = self::A<self::A<core::Record>>;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
}
abstract class A1 extends self::A<core::Record> {
synthetic constructor •() → self::A1
: super self::A::•()
;
}
abstract class A2 extends core::Object implements self::A<core::Record> {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&A extends core::Object implements self::A<core::Record> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&A
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&A {
synthetic constructor •() → self::A3
: super self::_A3&Object&A::•()
;
}
abstract class A4 extends self::A<core::Record> {
synthetic constructor •() → self::A4
: super self::A::•()
;
}
abstract class A5 extends self::A<core::Record> {
synthetic constructor •() → self::A5
: super self::A::•()
;
}
abstract class A6 extends self::A<core::Record> {
synthetic constructor •() → self::A6
: super self::A::•()
;
}
abstract class A7 extends self::A<self::A<core::Record>> {
synthetic constructor •() → self::A7
: super self::A::•()
;
}
static method foo1() → core::Record
return throw "";
static method foo2() → dynamic
return core::_GrowableList::•<core::Record>(0);
static method foo3() → dynamic
return #C1;
static method foo4() → dynamic
return #C2;
static method foo5(core::Record r) → dynamic
return null;
static method foo6({required core::Record r = #C3}) → dynamic
return null;
static method foo7() → core::List<core::Record>
return throw "";
static method foo8(core::List<core::Record> l) → dynamic
return null;
static method foo9() → core::Record
return throw "";
static method foo10() → self::A<core::Record>
return throw "";
static method foo11() → core::Record
return throw "";
static method foo12(core::Record r) → dynamic
return null;
static method foo13(self::A<core::Record> l) → dynamic
return null;
static method foo14(core::Record l) → dynamic
return null;
static method foo((core::int, core::String) record) → dynamic {
self::bar(record);
}
static method bar(core::Record record) → dynamic {
self::foo(invalid-expression "pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
foo(record); // Error.
^" in record as{TypeError,ForNonNullableByDefault} (core::int, core::String));
}
static method main() → dynamic {}
constants {
#C1 = TypeLiteralConstant(core::Record)
#C2 = TypeLiteralConstant(core::List<core::Record>)
#C3 = null
}

View file

@ -1,31 +0,0 @@
abstract class A<X> {}
typedef R = Record;
typedef AR = A<Record>;
typedef RR = R;
typedef AR2 = A<R>;
typedef AR3 = A<RR>;
typedef AR4 = A<AR>;
Record foo1() => throw '';
dynamic foo2() => <Record>[];
dynamic foo3() => Record;
dynamic foo4() => List<Record>;
dynamic foo5(Record r) => null;
dynamic foo6({required Record r}) => null;
List<Record> foo7() => throw '';
dynamic foo8(List<Record> l) => null;
R foo9() => throw '';
AR foo10() => throw '';
RR foo11() => throw '';
dynamic foo12(R r) => null;
dynamic foo13(AR l) => null;
dynamic foo14(RR l) => null;
abstract class A1 extends A<Record> {}
abstract class A2 implements A<Record> {}
abstract class A3 with A<Record> {}
abstract class A4 extends AR {}
abstract class A5 extends AR2 {}
abstract class A6 extends AR3 {}
abstract class A7 extends AR4 {}
foo((int, String) record) {}
bar(Record record) {}
main() {}

View file

@ -1,105 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
// foo(record); // Error.
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef AR = self::A<core::Record>;
typedef RR = core::Record;
typedef AR2 = self::A<core::Record>;
typedef AR3 = self::A<core::Record>;
typedef AR4 = self::A<self::A<core::Record>>;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
}
abstract class A1 extends self::A<core::Record> {
synthetic constructor •() → self::A1
: super self::A::•()
;
}
abstract class A2 extends core::Object implements self::A<core::Record> {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&A = core::Object with self::A<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&A
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&A {
synthetic constructor •() → self::A3
: super self::_A3&Object&A::•()
;
}
abstract class A4 extends self::A<core::Record> {
synthetic constructor •() → self::A4
: super self::A::•()
;
}
abstract class A5 extends self::A<core::Record> {
synthetic constructor •() → self::A5
: super self::A::•()
;
}
abstract class A6 extends self::A<core::Record> {
synthetic constructor •() → self::A6
: super self::A::•()
;
}
abstract class A7 extends self::A<self::A<core::Record>> {
synthetic constructor •() → self::A7
: super self::A::•()
;
}
static method foo1() → core::Record
return throw "";
static method foo2() → dynamic
return <core::Record>[];
static method foo3() → dynamic
return #C1;
static method foo4() → dynamic
return #C2;
static method foo5(core::Record r) → dynamic
return null;
static method foo6({required core::Record r = #C3}) → dynamic
return null;
static method foo7() → core::List<core::Record>
return throw "";
static method foo8(core::List<core::Record> l) → dynamic
return null;
static method foo9() → core::Record
return throw "";
static method foo10() → self::A<core::Record>
return throw "";
static method foo11() → core::Record
return throw "";
static method foo12(core::Record r) → dynamic
return null;
static method foo13(self::A<core::Record> l) → dynamic
return null;
static method foo14(core::Record l) → dynamic
return null;
static method foo((core::int, core::String) record) → dynamic {
self::bar(record);
}
static method bar(core::Record record) → dynamic {
self::foo(invalid-expression "pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
foo(record); // Error.
^" in record as{TypeError,ForNonNullableByDefault} (core::int, core::String));
}
static method main() → dynamic {}
constants {
#C1 = TypeLiteralConstant(core::Record*)
#C2 = TypeLiteralConstant(core::List<core::Record*>*)
#C3 = null
}

View file

@ -1,105 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
// foo(record); // Error.
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef AR = self::A<core::Record>;
typedef RR = core::Record;
typedef AR2 = self::A<core::Record>;
typedef AR3 = self::A<core::Record>;
typedef AR4 = self::A<self::A<core::Record>>;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
}
abstract class A1 extends self::A<core::Record> {
synthetic constructor •() → self::A1
: super self::A::•()
;
}
abstract class A2 extends core::Object implements self::A<core::Record> {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&A = core::Object with self::A<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&A
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&A {
synthetic constructor •() → self::A3
: super self::_A3&Object&A::•()
;
}
abstract class A4 extends self::A<core::Record> {
synthetic constructor •() → self::A4
: super self::A::•()
;
}
abstract class A5 extends self::A<core::Record> {
synthetic constructor •() → self::A5
: super self::A::•()
;
}
abstract class A6 extends self::A<core::Record> {
synthetic constructor •() → self::A6
: super self::A::•()
;
}
abstract class A7 extends self::A<self::A<core::Record>> {
synthetic constructor •() → self::A7
: super self::A::•()
;
}
static method foo1() → core::Record
return throw "";
static method foo2() → dynamic
return <core::Record>[];
static method foo3() → dynamic
return #C1;
static method foo4() → dynamic
return #C2;
static method foo5(core::Record r) → dynamic
return null;
static method foo6({required core::Record r = #C3}) → dynamic
return null;
static method foo7() → core::List<core::Record>
return throw "";
static method foo8(core::List<core::Record> l) → dynamic
return null;
static method foo9() → core::Record
return throw "";
static method foo10() → self::A<core::Record>
return throw "";
static method foo11() → core::Record
return throw "";
static method foo12(core::Record r) → dynamic
return null;
static method foo13(self::A<core::Record> l) → dynamic
return null;
static method foo14(core::Record l) → dynamic
return null;
static method foo((core::int, core::String) record) → dynamic {
self::bar(record);
}
static method bar(core::Record record) → dynamic {
self::foo(invalid-expression "pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
foo(record); // Error.
^" in record as{TypeError,ForNonNullableByDefault} (core::int, core::String));
}
static method main() → dynamic {}
constants {
#C1 = TypeLiteralConstant(core::Record*)
#C2 = TypeLiteralConstant(core::List<core::Record*>*)
#C3 = null
}

View file

@ -1,81 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef AR = self::A<core::Record>;
typedef RR = core::Record;
typedef AR2 = self::A<core::Record>;
typedef AR3 = self::A<core::Record>;
typedef AR4 = self::A<self::A<core::Record>>;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X%>
;
}
abstract class A1 extends self::A<core::Record> {
synthetic constructor •() → self::A1
;
}
abstract class A2 extends core::Object implements self::A<core::Record> {
synthetic constructor •() → self::A2
;
}
abstract class _A3&Object&A = core::Object with self::A<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&A
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&A {
synthetic constructor •() → self::A3
;
}
abstract class A4 extends self::A<core::Record> {
synthetic constructor •() → self::A4
;
}
abstract class A5 extends self::A<core::Record> {
synthetic constructor •() → self::A5
;
}
abstract class A6 extends self::A<core::Record> {
synthetic constructor •() → self::A6
;
}
abstract class A7 extends self::A<self::A<core::Record>> {
synthetic constructor •() → self::A7
;
}
static method foo1() → core::Record
;
static method foo2() → dynamic
;
static method foo3() → dynamic
;
static method foo4() → dynamic
;
static method foo5(core::Record r) → dynamic
;
static method foo6({required core::Record r}) → dynamic
;
static method foo7() → core::List<core::Record>
;
static method foo8(core::List<core::Record> l) → dynamic
;
static method foo9() → core::Record
;
static method foo10() → self::A<core::Record>
;
static method foo11() → core::Record
;
static method foo12(core::Record r) → dynamic
;
static method foo13(self::A<core::Record> l) → dynamic
;
static method foo14(core::Record l) → dynamic
;
static method foo((core::int, core::String) record) → dynamic
;
static method bar(core::Record record) → dynamic
;
static method main() → dynamic
;

View file

@ -1,105 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
// foo(record); // Error.
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef AR = self::A<core::Record>;
typedef RR = core::Record;
typedef AR2 = self::A<core::Record>;
typedef AR3 = self::A<core::Record>;
typedef AR4 = self::A<self::A<core::Record>>;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
}
abstract class A1 extends self::A<core::Record> {
synthetic constructor •() → self::A1
: super self::A::•()
;
}
abstract class A2 extends core::Object implements self::A<core::Record> {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&A extends core::Object implements self::A<core::Record> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&A
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&A {
synthetic constructor •() → self::A3
: super self::_A3&Object&A::•()
;
}
abstract class A4 extends self::A<core::Record> {
synthetic constructor •() → self::A4
: super self::A::•()
;
}
abstract class A5 extends self::A<core::Record> {
synthetic constructor •() → self::A5
: super self::A::•()
;
}
abstract class A6 extends self::A<core::Record> {
synthetic constructor •() → self::A6
: super self::A::•()
;
}
abstract class A7 extends self::A<self::A<core::Record>> {
synthetic constructor •() → self::A7
: super self::A::•()
;
}
static method foo1() → core::Record
return throw "";
static method foo2() → dynamic
return core::_GrowableList::•<core::Record>(0);
static method foo3() → dynamic
return #C1;
static method foo4() → dynamic
return #C2;
static method foo5(core::Record r) → dynamic
return null;
static method foo6({required core::Record r = #C3}) → dynamic
return null;
static method foo7() → core::List<core::Record>
return throw "";
static method foo8(core::List<core::Record> l) → dynamic
return null;
static method foo9() → core::Record
return throw "";
static method foo10() → self::A<core::Record>
return throw "";
static method foo11() → core::Record
return throw "";
static method foo12(core::Record r) → dynamic
return null;
static method foo13(self::A<core::Record> l) → dynamic
return null;
static method foo14(core::Record l) → dynamic
return null;
static method foo((core::int, core::String) record) → dynamic {
self::bar(record);
}
static method bar(core::Record record) → dynamic {
self::foo(invalid-expression "pkg/front_end/testcases/records/type_record.dart:66:7: Error: The argument type 'Record' can't be assigned to the parameter type '(int, String)'.
foo(record); // Error.
^" in record as{TypeError,ForNonNullableByDefault} (core::int, core::String));
}
static method main() → dynamic {}
constants {
#C1 = TypeLiteralConstant(core::Record*)
#C2 = TypeLiteralConstant(core::List<core::Record*>*)
#C3 = null
}

View file

@ -1,26 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
typedef R = Record;
typedef RR = R;
class G<X> {}
abstract class A1 extends Record {} // Error.
abstract class A2 extends RR {} // Error.
abstract class A3 extends G<Record> {} // Ok.
abstract class A4 extends G<RR> {} // Ok.
abstract class B1 implements Record {} // Error.
abstract class B2 implements RR {} // Error.
abstract class B3 implements G<Record> {} // Ok.
abstract class B4 implements G<RR> {} // Ok.
abstract class C1 with Record {} // Error.
abstract class C2 with RR {} // Error.
abstract class C3 with G<Record> {} // Ok.
abstract class C4 with G<RR> {} // Ok.
main() {}

View file

@ -1,135 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 extends RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B1 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B2 implements RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C1 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// sdk/lib/core/record.dart:11:16: Context: This is the type denoted by the type alias.
// abstract class Record {}
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
class G<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::X%>
: super core::Object::•()
;
}
abstract class A1 extends core::Record {
synthetic constructor •() → self::A1
: super core::Record::•()
;
}
abstract class A2 extends core::Record {
synthetic constructor •() → self::A2
: super core::Record::•()
;
}
abstract class A3 extends self::G<core::Record> {
synthetic constructor •() → self::A3
: super self::G::•()
;
}
abstract class A4 extends self::G<core::Record> {
synthetic constructor •() → self::A4
: super self::G::•()
;
}
abstract class B1 extends core::Object implements core::Record {
synthetic constructor •() → self::B1
: super core::Object::•()
;
}
abstract class B2 extends core::Object implements core::Record {
synthetic constructor •() → self::B2
: super core::Object::•()
;
}
abstract class B3 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B3
: super core::Object::•()
;
}
abstract class B4 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B4
: super core::Object::•()
;
}
abstract class _C1&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C1&Object&Record
: super core::Object::•()
;
}
abstract class C1 extends self::_C1&Object&Record {
synthetic constructor •() → self::C1
: super self::_C1&Object&Record::•()
;
}
abstract class _C2&Object&RR = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C2&Object&RR
: super core::Object::•()
;
}
abstract class C2 extends self::_C2&Object&RR {
synthetic constructor •() → self::C2
: super self::_C2&Object&RR::•()
;
}
abstract class _C3&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C3&Object&G
: super core::Object::•()
;
}
abstract class C3 extends self::_C3&Object&G {
synthetic constructor •() → self::C3
: super self::_C3&Object&G::•()
;
}
abstract class _C4&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C4&Object&G
: super core::Object::•()
;
}
abstract class C4 extends self::_C4&Object&G {
synthetic constructor •() → self::C4
: super self::_C4&Object&G::•()
;
}
static method main() → dynamic {}

View file

@ -1,135 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 extends RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B1 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B2 implements RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C1 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// sdk/lib/core/record.dart:11:16: Context: This is the type denoted by the type alias.
// abstract class Record {}
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
class G<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::X%>
: super core::Object::•()
;
}
abstract class A1 extends core::Record {
synthetic constructor •() → self::A1
: super core::Record::•()
;
}
abstract class A2 extends core::Record {
synthetic constructor •() → self::A2
: super core::Record::•()
;
}
abstract class A3 extends self::G<core::Record> {
synthetic constructor •() → self::A3
: super self::G::•()
;
}
abstract class A4 extends self::G<core::Record> {
synthetic constructor •() → self::A4
: super self::G::•()
;
}
abstract class B1 extends core::Object implements core::Record {
synthetic constructor •() → self::B1
: super core::Object::•()
;
}
abstract class B2 extends core::Object implements core::Record {
synthetic constructor •() → self::B2
: super core::Object::•()
;
}
abstract class B3 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B3
: super core::Object::•()
;
}
abstract class B4 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B4
: super core::Object::•()
;
}
abstract class _C1&Object&Record extends core::Object implements core::Record /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C1&Object&Record
: super core::Object::•()
;
}
abstract class C1 extends self::_C1&Object&Record {
synthetic constructor •() → self::C1
: super self::_C1&Object&Record::•()
;
}
abstract class _C2&Object&RR extends core::Object implements core::Record /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C2&Object&RR
: super core::Object::•()
;
}
abstract class C2 extends self::_C2&Object&RR {
synthetic constructor •() → self::C2
: super self::_C2&Object&RR::•()
;
}
abstract class _C3&Object&G extends core::Object implements self::G<core::Record> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C3&Object&G
: super core::Object::•()
;
}
abstract class C3 extends self::_C3&Object&G {
synthetic constructor •() → self::C3
: super self::_C3&Object&G::•()
;
}
abstract class _C4&Object&G extends core::Object implements self::G<core::Record> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C4&Object&G
: super core::Object::•()
;
}
abstract class C4 extends self::_C4&Object&G {
synthetic constructor •() → self::C4
: super self::_C4&Object&G::•()
;
}
static method main() → dynamic {}

View file

@ -1,30 +0,0 @@
typedef R = Record;
typedef RR = R;
class G<X> {}
abstract class A1 extends Record {}
abstract class A2 extends RR {}
abstract class A3 extends G<Record> {}
abstract class A4 extends G<RR> {}
abstract class B1 implements Record {}
abstract class B2 implements RR {}
abstract class B3 implements G<Record> {}
abstract class B4 implements G<RR> {}
abstract class C1 with Record {}
abstract class C2 with RR {}
abstract class C3 with G<Record> {}
abstract class C4 with G<RR> {}
main() {}

View file

@ -1,29 +0,0 @@
abstract class A1 extends Record {}
abstract class A2 extends RR {}
abstract class A3 extends G<Record> {}
abstract class A4 extends G<RR> {}
abstract class B1 implements Record {}
abstract class B2 implements RR {}
abstract class B3 implements G<Record> {}
abstract class B4 implements G<RR> {}
abstract class C1 with Record {}
abstract class C2 with RR {}
abstract class C3 with G<Record> {}
abstract class C4 with G<RR> {}
class G<X> {}
main() {}
typedef R = Record;
typedef RR = R;

View file

@ -1,135 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 extends RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B1 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B2 implements RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C1 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// sdk/lib/core/record.dart:11:16: Context: This is the type denoted by the type alias.
// abstract class Record {}
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
class G<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::X%>
: super core::Object::•()
;
}
abstract class A1 extends core::Record {
synthetic constructor •() → self::A1
: super core::Record::•()
;
}
abstract class A2 extends core::Record {
synthetic constructor •() → self::A2
: super core::Record::•()
;
}
abstract class A3 extends self::G<core::Record> {
synthetic constructor •() → self::A3
: super self::G::•()
;
}
abstract class A4 extends self::G<core::Record> {
synthetic constructor •() → self::A4
: super self::G::•()
;
}
abstract class B1 extends core::Object implements core::Record {
synthetic constructor •() → self::B1
: super core::Object::•()
;
}
abstract class B2 extends core::Object implements core::Record {
synthetic constructor •() → self::B2
: super core::Object::•()
;
}
abstract class B3 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B3
: super core::Object::•()
;
}
abstract class B4 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B4
: super core::Object::•()
;
}
abstract class _C1&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C1&Object&Record
: super core::Object::•()
;
}
abstract class C1 extends self::_C1&Object&Record {
synthetic constructor •() → self::C1
: super self::_C1&Object&Record::•()
;
}
abstract class _C2&Object&RR = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C2&Object&RR
: super core::Object::•()
;
}
abstract class C2 extends self::_C2&Object&RR {
synthetic constructor •() → self::C2
: super self::_C2&Object&RR::•()
;
}
abstract class _C3&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C3&Object&G
: super core::Object::•()
;
}
abstract class C3 extends self::_C3&Object&G {
synthetic constructor •() → self::C3
: super self::_C3&Object&G::•()
;
}
abstract class _C4&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C4&Object&G
: super core::Object::•()
;
}
abstract class C4 extends self::_C4&Object&G {
synthetic constructor •() → self::C4
: super self::_C4&Object&G::•()
;
}
static method main() → dynamic {}

View file

@ -1,135 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 extends RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B1 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B2 implements RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C1 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// sdk/lib/core/record.dart:11:16: Context: This is the type denoted by the type alias.
// abstract class Record {}
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
class G<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::X%>
: super core::Object::•()
;
}
abstract class A1 extends core::Record {
synthetic constructor •() → self::A1
: super core::Record::•()
;
}
abstract class A2 extends core::Record {
synthetic constructor •() → self::A2
: super core::Record::•()
;
}
abstract class A3 extends self::G<core::Record> {
synthetic constructor •() → self::A3
: super self::G::•()
;
}
abstract class A4 extends self::G<core::Record> {
synthetic constructor •() → self::A4
: super self::G::•()
;
}
abstract class B1 extends core::Object implements core::Record {
synthetic constructor •() → self::B1
: super core::Object::•()
;
}
abstract class B2 extends core::Object implements core::Record {
synthetic constructor •() → self::B2
: super core::Object::•()
;
}
abstract class B3 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B3
: super core::Object::•()
;
}
abstract class B4 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B4
: super core::Object::•()
;
}
abstract class _C1&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C1&Object&Record
: super core::Object::•()
;
}
abstract class C1 extends self::_C1&Object&Record {
synthetic constructor •() → self::C1
: super self::_C1&Object&Record::•()
;
}
abstract class _C2&Object&RR = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C2&Object&RR
: super core::Object::•()
;
}
abstract class C2 extends self::_C2&Object&RR {
synthetic constructor •() → self::C2
: super self::_C2&Object&RR::•()
;
}
abstract class _C3&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C3&Object&G
: super core::Object::•()
;
}
abstract class C3 extends self::_C3&Object&G {
synthetic constructor •() → self::C3
: super self::_C3&Object&G::•()
;
}
abstract class _C4&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C4&Object&G
: super core::Object::•()
;
}
abstract class C4 extends self::_C4&Object&G {
synthetic constructor •() → self::C4
: super self::_C4&Object&G::•()
;
}
static method main() → dynamic {}

View file

@ -1,123 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 extends RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B1 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B2 implements RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C1 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// sdk/lib/core/record.dart:11:16: Context: This is the type denoted by the type alias.
// abstract class Record {}
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
class G<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::X%>
;
}
abstract class A1 extends core::Record {
synthetic constructor •() → self::A1
;
}
abstract class A2 extends core::Record {
synthetic constructor •() → self::A2
;
}
abstract class A3 extends self::G<core::Record> {
synthetic constructor •() → self::A3
;
}
abstract class A4 extends self::G<core::Record> {
synthetic constructor •() → self::A4
;
}
abstract class B1 extends core::Object implements core::Record {
synthetic constructor •() → self::B1
;
}
abstract class B2 extends core::Object implements core::Record {
synthetic constructor •() → self::B2
;
}
abstract class B3 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B3
;
}
abstract class B4 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B4
;
}
abstract class _C1&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C1&Object&Record
: super core::Object::•()
;
}
abstract class C1 extends self::_C1&Object&Record {
synthetic constructor •() → self::C1
;
}
abstract class _C2&Object&RR = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C2&Object&RR
: super core::Object::•()
;
}
abstract class C2 extends self::_C2&Object&RR {
synthetic constructor •() → self::C2
;
}
abstract class _C3&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C3&Object&G
: super core::Object::•()
;
}
abstract class C3 extends self::_C3&Object&G {
synthetic constructor •() → self::C3
;
}
abstract class _C4&Object&G = core::Object with self::G<core::Record> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C4&Object&G
: super core::Object::•()
;
}
abstract class C4 extends self::_C4&Object&G {
synthetic constructor •() → self::C4
;
}
static method main() → dynamic
;

View file

@ -1,135 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 extends RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B1 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class B2 implements RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C1 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias.
// typedef RR = R;
// ^
//
// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented.
// abstract class C2 with RR {} // Error.
// ^
// sdk/lib/core/record.dart:11:16: Context: This is the type denoted by the type alias.
// abstract class Record {}
// ^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
class G<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::X%>
: super core::Object::•()
;
}
abstract class A1 extends core::Record {
synthetic constructor •() → self::A1
: super core::Record::•()
;
}
abstract class A2 extends core::Record {
synthetic constructor •() → self::A2
: super core::Record::•()
;
}
abstract class A3 extends self::G<core::Record> {
synthetic constructor •() → self::A3
: super self::G::•()
;
}
abstract class A4 extends self::G<core::Record> {
synthetic constructor •() → self::A4
: super self::G::•()
;
}
abstract class B1 extends core::Object implements core::Record {
synthetic constructor •() → self::B1
: super core::Object::•()
;
}
abstract class B2 extends core::Object implements core::Record {
synthetic constructor •() → self::B2
: super core::Object::•()
;
}
abstract class B3 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B3
: super core::Object::•()
;
}
abstract class B4 extends core::Object implements self::G<core::Record> {
synthetic constructor •() → self::B4
: super core::Object::•()
;
}
abstract class _C1&Object&Record extends core::Object implements core::Record /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C1&Object&Record
: super core::Object::•()
;
}
abstract class C1 extends self::_C1&Object&Record {
synthetic constructor •() → self::C1
: super self::_C1&Object&Record::•()
;
}
abstract class _C2&Object&RR extends core::Object implements core::Record /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C2&Object&RR
: super core::Object::•()
;
}
abstract class C2 extends self::_C2&Object&RR {
synthetic constructor •() → self::C2
: super self::_C2&Object&RR::•()
;
}
abstract class _C3&Object&G extends core::Object implements self::G<core::Record> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C3&Object&G
: super core::Object::•()
;
}
abstract class C3 extends self::_C3&Object&G {
synthetic constructor •() → self::C3
: super self::_C3&Object&G::•()
;
}
abstract class _C4&Object&G extends core::Object implements self::G<core::Record> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_C4&Object&G
: super core::Object::•()
;
}
abstract class C4 extends self::_C4&Object&G {
synthetic constructor •() → self::C4
: super self::_C4&Object&G::•()
;
}
static method main() → dynamic {}

View file

@ -1,12 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
typedef R = Record;
typedef RR = R;
foo1() => Record(); // Error.
foo2() => R(); // Error.
foo3() => RR(); // Error.
main() {}

View file

@ -1,28 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:8:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo1() => Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:9:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo2() => R(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:10:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo3() => RR(); // Error.
// ^^^^^^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
static method foo1() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method main() → dynamic {}

View file

@ -1,28 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:8:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo1() => Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:9:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo2() => R(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:10:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo3() => RR(); // Error.
// ^^^^^^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
static method foo1() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method main() → dynamic {}

View file

@ -1,6 +0,0 @@
typedef R = Record;
typedef RR = R;
foo1() => Record();
foo2() => R();
foo3() => RR();
main() {}

View file

@ -1,6 +0,0 @@
foo1() => Record();
foo2() => R();
foo3() => RR();
main() {}
typedef R = Record;
typedef RR = R;

View file

@ -1,28 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:8:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo1() => Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:9:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo2() => R(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:10:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo3() => RR(); // Error.
// ^^^^^^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
static method foo1() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method main() → dynamic {}

View file

@ -1,28 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:8:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo1() => Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:9:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo2() => R(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:10:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo3() => RR(); // Error.
// ^^^^^^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
static method foo1() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method main() → dynamic {}

View file

@ -1,14 +0,0 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
static method foo1() → dynamic
;
static method foo2() → dynamic
;
static method foo3() → dynamic
;
static method main() → dynamic
;

View file

@ -1,28 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:8:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo1() => Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:9:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo2() => R(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_constructor_forbidden.dart:10:11: Error: The class 'Record' is abstract and can't be instantiated.
// foo3() => RR(); // Error.
// ^^^^^^
//
import self as self;
import "dart:core" as core;
typedef R = core::Record;
typedef RR = core::Record;
static method foo1() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method main() → dynamic {}

View file

@ -1,77 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart=2.17
import './type_record_unsupported_lib.dart';
typedef R = Record; // Error.
typedef AR = A<Record>; // Error.
typedef AR2 = A<FromSupportedR>; // Error.
typedef AR3 = A<FromSupportedRR>; // Error.
typedef AR4 = A<FromSupportedAR>; // Ok: indirect use.
typedef RR = FromSupportedR; // Error.
Record foo1() => throw ''; // Error.
dynamic foo2() => new Record(); // Error.
dynamic foo3() => const Record(); // Error.
dynamic foo4() => <Record>[]; // Error.
dynamic foo5() => Record; // Error.
dynamic foo6() => List<Record>; // Error.
dynamic foo7(Record r) => null; // Error.
dynamic foo8({required Record r}) => null; // Error.
List<Record> foo9() => throw ''; // Error.
dynamic foo10(List<Record> l) => null; // Error.
FromSupportedR foo11() => throw ''; // Error.
FromSupportedAR foo12() => throw ''; // Ok: indirect use.
FromSupportedRR foo13() => throw ''; // Error.
dynamic foo14(FromSupportedR r) => null; // Error.
dynamic foo15(FromSupportedAR l) => null; // Ok: indirect use.
dynamic foo16(FromSupportedRR l) => null; // Error.
dynamic foo17() => FromSupportedR; // Error.
dynamic foo18() => FromSupportedAR; // Ok: indirect use.
dynamic foo19() => FromSupportedRR; // Error.
abstract class A1 extends Record {} // Error.
abstract class A2 implements Record {} // Error.
abstract class A3 with Record {} // Error.
abstract class A4 extends A<Record> {} // Error.
abstract class A5 implements A<Record> {} // Error.
abstract class A6 with A<Record> {} // Error.
abstract class A7 extends FromSupportedR {} // Error.
abstract class A8 extends FromSupportedAR {} // Ok: indirect use.
abstract class A9 extends FromSupportedRR {} // Error.
main() {}

View file

@ -1,401 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A7 extends FromSupportedR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:7:9: Context: The issue arises via this type alias.
// typedef FromSupportedR = Record;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:11:9: Context: The issue arises via this type alias.
// typedef FromSupportedRR = FromSupportedR;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:9:13: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef R = Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:11:16: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR = A<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:13:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR2 = A<FromSupportedR>; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:15:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR3 = A<FromSupportedRR>; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:19:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef RR = FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:21:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// Record foo1() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:33:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo7(Record r) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:35:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo8({required Record r}) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:37:6: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// List<Record> foo9() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:39:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo10(List<Record> l) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:41:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedR foo11() => throw ''; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:45:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedRR foo13() => throw ''; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:47:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo14(FromSupportedR r) => null; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:51:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo16(FromSupportedRR l) => null; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A1 extends Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The type 'Record' can't be used as supertype.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A2 implements Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The type 'Record' can't be used as supertype.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:65:29: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A4 extends A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:67:32: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A5 implements A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:69:26: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A6 with A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A7 extends FromSupportedR {} // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A3 with Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The type 'Record' can't be used as supertype.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:23:23: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo2() => new Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo3() => const Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// dynamic foo3() => const Record(); // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:27:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo4() => <Record>[]; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:29:19: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo5() => Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:31:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo6() => List<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:53:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo17() => FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:57:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo19() => FromSupportedRR; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
import self as self;
import "type_record_unsupported_lib.dart" as typ;
import "dart:core" as core;
import "org-dartlang-testcase:///type_record_unsupported_lib.dart";
typedef R = invalid-type;
typedef AR = typ::A<invalid-type>;
typedef AR2 = typ::A<core::Record>;
typedef AR3 = typ::A<core::Record>;
typedef AR4 = typ::A<typ::A<core::Record>>;
typedef RR = core::Record;
abstract class A1 extends core::Object {
synthetic constructor •() → self::A1
: super core::Object::•()
;
}
abstract class A2 extends core::Object {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&Record
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&Record {
synthetic constructor •() → self::A3
: super self::_A3&Object&Record::•()
;
}
abstract class A4 extends typ::A<invalid-type> {
synthetic constructor •() → self::A4
: super typ::A::•()
;
}
abstract class A5 extends core::Object implements typ::A<invalid-type> {
synthetic constructor •() → self::A5
: super core::Object::•()
;
}
abstract class _A6&Object&A = core::Object with typ::A<invalid-type> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A6&Object&A
: super core::Object::•()
;
}
abstract class A6 extends self::_A6&Object&A {
synthetic constructor •() → self::A6
: super self::_A6&Object&A::•()
;
}
abstract class A7 extends core::Record {
synthetic constructor •() → self::A7
: super core::Record::•()
;
}
abstract class A8 extends typ::A<core::Record> {
synthetic constructor •() → self::A8
: super typ::A::•()
;
}
abstract class A9 extends core::Record {
synthetic constructor •() → self::A9
: super core::Record::•()
;
}
static method foo1() → invalid-type
return throw "";
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw invalid-expression "pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
dynamic foo3() => const Record(); // Error.
^";
static method foo4() → dynamic
return <invalid-type>[];
static method foo5() → dynamic
return #C1;
static method foo6() → dynamic
return #C2;
static method foo7(invalid-type r) → dynamic
return null;
static method foo8({required invalid-type r = #C3}) → dynamic
return null;
static method foo9() → core::List<invalid-type>
return throw "";
static method foo10(core::List<invalid-type> l) → dynamic
return null;
static method foo11() → core::Record
return throw "";
static method foo12() → typ::A<core::Record>
return throw "";
static method foo13() → core::Record
return throw "";
static method foo14(core::Record r) → dynamic
return null;
static method foo15(typ::A<core::Record> l) → dynamic
return null;
static method foo16(core::Record l) → dynamic
return null;
static method foo17() → dynamic
return #C4;
static method foo18() → dynamic
return #C5;
static method foo19() → dynamic
return #C4;
static method main() → dynamic {}
library /*isNonNullableByDefault*/;
import self as typ;
import "dart:core" as core;
typedef FromSupportedR = core::Record;
typedef FromSupportedAR = typ::A<core::Record>;
typedef FromSupportedRR = core::Record;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → typ::A<typ::A::X%>
: super core::Object::•()
;
}
constants {
#C1 = TypeLiteralConstant(invalid-type)
#C2 = TypeLiteralConstant(core::List<invalid-type>)
#C3 = null
#C4 = TypeLiteralConstant(core::Record)
#C5 = TypeLiteralConstant(typ::A<core::Record>)
}

View file

@ -1,401 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A7 extends FromSupportedR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:7:9: Context: The issue arises via this type alias.
// typedef FromSupportedR = Record;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:11:9: Context: The issue arises via this type alias.
// typedef FromSupportedRR = FromSupportedR;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:9:13: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef R = Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:11:16: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR = A<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:13:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR2 = A<FromSupportedR>; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:15:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR3 = A<FromSupportedRR>; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:19:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef RR = FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:21:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// Record foo1() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:33:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo7(Record r) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:35:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo8({required Record r}) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:37:6: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// List<Record> foo9() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:39:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo10(List<Record> l) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:41:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedR foo11() => throw ''; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:45:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedRR foo13() => throw ''; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:47:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo14(FromSupportedR r) => null; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:51:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo16(FromSupportedRR l) => null; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A1 extends Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The type 'Record' can't be used as supertype.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A2 implements Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The type 'Record' can't be used as supertype.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:65:29: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A4 extends A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:67:32: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A5 implements A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:69:26: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A6 with A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A7 extends FromSupportedR {} // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A3 with Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The type 'Record' can't be used as supertype.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:23:23: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo2() => new Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo3() => const Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// dynamic foo3() => const Record(); // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:27:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo4() => <Record>[]; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:29:19: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo5() => Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:31:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo6() => List<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:53:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo17() => FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:57:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo19() => FromSupportedRR; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
import self as self;
import "type_record_unsupported_lib.dart" as typ;
import "dart:core" as core;
import "org-dartlang-testcase:///type_record_unsupported_lib.dart";
typedef R = invalid-type;
typedef AR = typ::A<invalid-type>;
typedef AR2 = typ::A<core::Record>;
typedef AR3 = typ::A<core::Record>;
typedef AR4 = typ::A<typ::A<core::Record>>;
typedef RR = core::Record;
abstract class A1 extends core::Object {
synthetic constructor •() → self::A1
: super core::Object::•()
;
}
abstract class A2 extends core::Object {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&Record extends core::Object implements core::Record /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&Record
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&Record {
synthetic constructor •() → self::A3
: super self::_A3&Object&Record::•()
;
}
abstract class A4 extends typ::A<invalid-type> {
synthetic constructor •() → self::A4
: super typ::A::•()
;
}
abstract class A5 extends core::Object implements typ::A<invalid-type> {
synthetic constructor •() → self::A5
: super core::Object::•()
;
}
abstract class _A6&Object&A extends core::Object implements typ::A<invalid-type> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A6&Object&A
: super core::Object::•()
;
}
abstract class A6 extends self::_A6&Object&A {
synthetic constructor •() → self::A6
: super self::_A6&Object&A::•()
;
}
abstract class A7 extends core::Record {
synthetic constructor •() → self::A7
: super core::Record::•()
;
}
abstract class A8 extends typ::A<core::Record> {
synthetic constructor •() → self::A8
: super typ::A::•()
;
}
abstract class A9 extends core::Record {
synthetic constructor •() → self::A9
: super core::Record::•()
;
}
static method foo1() → invalid-type
return throw "";
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw invalid-expression "pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
dynamic foo3() => const Record(); // Error.
^";
static method foo4() → dynamic
return core::_GrowableList::•<invalid-type>(0);
static method foo5() → dynamic
return #C1;
static method foo6() → dynamic
return #C2;
static method foo7(invalid-type r) → dynamic
return null;
static method foo8({required invalid-type r = #C3}) → dynamic
return null;
static method foo9() → core::List<invalid-type>
return throw "";
static method foo10(core::List<invalid-type> l) → dynamic
return null;
static method foo11() → core::Record
return throw "";
static method foo12() → typ::A<core::Record>
return throw "";
static method foo13() → core::Record
return throw "";
static method foo14(core::Record r) → dynamic
return null;
static method foo15(typ::A<core::Record> l) → dynamic
return null;
static method foo16(core::Record l) → dynamic
return null;
static method foo17() → dynamic
return #C4;
static method foo18() → dynamic
return #C5;
static method foo19() → dynamic
return #C4;
static method main() → dynamic {}
library /*isNonNullableByDefault*/;
import self as typ;
import "dart:core" as core;
typedef FromSupportedR = core::Record;
typedef FromSupportedAR = typ::A<core::Record>;
typedef FromSupportedRR = core::Record;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → typ::A<typ::A::X%>
: super core::Object::•()
;
}
constants {
#C1 = TypeLiteralConstant(invalid-type)
#C2 = TypeLiteralConstant(core::List<invalid-type>)
#C3 = null
#C4 = TypeLiteralConstant(core::Record)
#C5 = TypeLiteralConstant(typ::A<core::Record>)
}

View file

@ -1,48 +0,0 @@
// @dart = 2.17
import './type_record_unsupported_lib.dart';
typedef R = Record;
typedef AR = A<Record>;
typedef AR2 = A<FromSupportedR>;
typedef AR3 = A<FromSupportedRR>;
typedef AR4 = A<FromSupportedAR>;
typedef RR = FromSupportedR;
Record foo1() => throw '';
dynamic foo2() => new Record();
dynamic foo3() => const Record();
dynamic foo4() => <Record>[];
dynamic foo5() => Record;
dynamic foo6() => List<Record>;
dynamic foo7(Record r) => null;
dynamic foo8({required Record r}) => null;
List<Record> foo9() => throw '';
dynamic foo10(List<Record> l) => null;
FromSupportedR foo11() => throw '';
FromSupportedAR foo12() => throw '';
FromSupportedRR foo13() => throw '';
dynamic foo14(FromSupportedR r) => null;
dynamic foo15(FromSupportedAR l) => null;
dynamic foo16(FromSupportedRR l) => null;
dynamic foo17() => FromSupportedR;
dynamic foo18() => FromSupportedAR;
dynamic foo19() => FromSupportedRR;
abstract class A1 extends Record {}
abstract class A2 implements Record {}
abstract class A3 with Record {}
abstract class A4 extends A<Record> {}
abstract class A5 implements A<Record> {}
abstract class A6 with A<Record> {}
abstract class A7 extends FromSupportedR {}
abstract class A8 extends FromSupportedAR {}
abstract class A9 extends FromSupportedRR {}
main() {}

View file

@ -1,48 +0,0 @@
// @dart = 2.17
import './type_record_unsupported_lib.dart';
FromSupportedAR foo12() => throw '';
FromSupportedR foo11() => throw '';
FromSupportedRR foo13() => throw '';
List<Record> foo9() => throw '';
Record foo1() => throw '';
abstract class A1 extends Record {}
abstract class A2 implements Record {}
abstract class A3 with Record {}
abstract class A4 extends A<Record> {}
abstract class A5 implements A<Record> {}
abstract class A6 with A<Record> {}
abstract class A7 extends FromSupportedR {}
abstract class A8 extends FromSupportedAR {}
abstract class A9 extends FromSupportedRR {}
dynamic foo10(List<Record> l) => null;
dynamic foo14(FromSupportedR r) => null;
dynamic foo15(FromSupportedAR l) => null;
dynamic foo16(FromSupportedRR l) => null;
dynamic foo17() => FromSupportedR;
dynamic foo18() => FromSupportedAR;
dynamic foo19() => FromSupportedRR;
dynamic foo2() => new Record();
dynamic foo3() => const Record();
dynamic foo4() => <Record>[];
dynamic foo5() => Record;
dynamic foo6() => List<Record>;
dynamic foo7(Record r) => null;
dynamic foo8({required Record r}) => null;
main() {}
typedef AR = A<Record>;
typedef AR2 = A<FromSupportedR>;
typedef AR3 = A<FromSupportedRR>;
typedef AR4 = A<FromSupportedAR>;
typedef R = Record;
typedef RR = FromSupportedR;

View file

@ -1,401 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A7 extends FromSupportedR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:7:9: Context: The issue arises via this type alias.
// typedef FromSupportedR = Record;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:11:9: Context: The issue arises via this type alias.
// typedef FromSupportedRR = FromSupportedR;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:9:13: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef R = Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:11:16: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR = A<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:13:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR2 = A<FromSupportedR>; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:15:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR3 = A<FromSupportedRR>; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:19:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef RR = FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:21:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// Record foo1() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:33:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo7(Record r) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:35:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo8({required Record r}) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:37:6: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// List<Record> foo9() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:39:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo10(List<Record> l) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:41:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedR foo11() => throw ''; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:45:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedRR foo13() => throw ''; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:47:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo14(FromSupportedR r) => null; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:51:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo16(FromSupportedRR l) => null; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A1 extends Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The type 'Record' can't be used as supertype.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A2 implements Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The type 'Record' can't be used as supertype.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:65:29: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A4 extends A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:67:32: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A5 implements A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:69:26: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A6 with A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A7 extends FromSupportedR {} // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A3 with Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The type 'Record' can't be used as supertype.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:23:23: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo2() => new Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo3() => const Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// dynamic foo3() => const Record(); // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:27:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo4() => <Record>[]; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:29:19: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo5() => Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:31:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo6() => List<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:53:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo17() => FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:57:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo19() => FromSupportedRR; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
import self as self;
import "type_record_unsupported_lib.dart" as typ;
import "dart:core" as core;
import "org-dartlang-testcase:///type_record_unsupported_lib.dart";
typedef R = invalid-type;
typedef AR = typ::A<invalid-type>;
typedef AR2 = typ::A<core::Record>;
typedef AR3 = typ::A<core::Record>;
typedef AR4 = typ::A<typ::A<core::Record>>;
typedef RR = core::Record;
abstract class A1 extends core::Object {
synthetic constructor •() → self::A1
: super core::Object::•()
;
}
abstract class A2 extends core::Object {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&Record
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&Record {
synthetic constructor •() → self::A3
: super self::_A3&Object&Record::•()
;
}
abstract class A4 extends typ::A<invalid-type> {
synthetic constructor •() → self::A4
: super typ::A::•()
;
}
abstract class A5 extends core::Object implements typ::A<invalid-type> {
synthetic constructor •() → self::A5
: super core::Object::•()
;
}
abstract class _A6&Object&A = core::Object with typ::A<invalid-type> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A6&Object&A
: super core::Object::•()
;
}
abstract class A6 extends self::_A6&Object&A {
synthetic constructor •() → self::A6
: super self::_A6&Object&A::•()
;
}
abstract class A7 extends core::Record {
synthetic constructor •() → self::A7
: super core::Record::•()
;
}
abstract class A8 extends typ::A<core::Record> {
synthetic constructor •() → self::A8
: super typ::A::•()
;
}
abstract class A9 extends core::Record {
synthetic constructor •() → self::A9
: super core::Record::•()
;
}
static method foo1() → invalid-type
return throw "";
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw invalid-expression "pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
dynamic foo3() => const Record(); // Error.
^";
static method foo4() → dynamic
return <invalid-type>[];
static method foo5() → dynamic
return #C1;
static method foo6() → dynamic
return #C2;
static method foo7(invalid-type r) → dynamic
return null;
static method foo8({required invalid-type r = #C3}) → dynamic
return null;
static method foo9() → core::List<invalid-type>
return throw "";
static method foo10(core::List<invalid-type> l) → dynamic
return null;
static method foo11() → core::Record
return throw "";
static method foo12() → typ::A<core::Record>
return throw "";
static method foo13() → core::Record
return throw "";
static method foo14(core::Record r) → dynamic
return null;
static method foo15(typ::A<core::Record> l) → dynamic
return null;
static method foo16(core::Record l) → dynamic
return null;
static method foo17() → dynamic
return #C4;
static method foo18() → dynamic
return #C5;
static method foo19() → dynamic
return #C4;
static method main() → dynamic {}
library /*isNonNullableByDefault*/;
import self as typ;
import "dart:core" as core;
typedef FromSupportedR = core::Record;
typedef FromSupportedAR = typ::A<core::Record>;
typedef FromSupportedRR = core::Record;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → typ::A<typ::A::X%>
: super core::Object::•()
;
}
constants {
#C1 = TypeLiteralConstant(invalid-type)
#C2 = TypeLiteralConstant(core::List<invalid-type>*)
#C3 = null
#C4 = TypeLiteralConstant(core::Record*)
#C5 = TypeLiteralConstant(typ::A<core::Record*>*)
}

View file

@ -1,401 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A7 extends FromSupportedR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:7:9: Context: The issue arises via this type alias.
// typedef FromSupportedR = Record;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:11:9: Context: The issue arises via this type alias.
// typedef FromSupportedRR = FromSupportedR;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:9:13: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef R = Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:11:16: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR = A<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:13:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR2 = A<FromSupportedR>; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:15:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR3 = A<FromSupportedRR>; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:19:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef RR = FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:21:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// Record foo1() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:33:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo7(Record r) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:35:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo8({required Record r}) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:37:6: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// List<Record> foo9() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:39:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo10(List<Record> l) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:41:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedR foo11() => throw ''; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:45:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedRR foo13() => throw ''; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:47:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo14(FromSupportedR r) => null; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:51:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo16(FromSupportedRR l) => null; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A1 extends Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The type 'Record' can't be used as supertype.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A2 implements Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The type 'Record' can't be used as supertype.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:65:29: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A4 extends A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:67:32: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A5 implements A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:69:26: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A6 with A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A7 extends FromSupportedR {} // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A3 with Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The type 'Record' can't be used as supertype.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:23:23: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo2() => new Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo3() => const Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// dynamic foo3() => const Record(); // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:27:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo4() => <Record>[]; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:29:19: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo5() => Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:31:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo6() => List<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:53:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo17() => FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:57:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo19() => FromSupportedRR; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
import self as self;
import "type_record_unsupported_lib.dart" as typ;
import "dart:core" as core;
import "org-dartlang-testcase:///type_record_unsupported_lib.dart";
typedef R = invalid-type;
typedef AR = typ::A<invalid-type>;
typedef AR2 = typ::A<core::Record>;
typedef AR3 = typ::A<core::Record>;
typedef AR4 = typ::A<typ::A<core::Record>>;
typedef RR = core::Record;
abstract class A1 extends core::Object {
synthetic constructor •() → self::A1
: super core::Object::•()
;
}
abstract class A2 extends core::Object {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&Record
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&Record {
synthetic constructor •() → self::A3
: super self::_A3&Object&Record::•()
;
}
abstract class A4 extends typ::A<invalid-type> {
synthetic constructor •() → self::A4
: super typ::A::•()
;
}
abstract class A5 extends core::Object implements typ::A<invalid-type> {
synthetic constructor •() → self::A5
: super core::Object::•()
;
}
abstract class _A6&Object&A = core::Object with typ::A<invalid-type> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A6&Object&A
: super core::Object::•()
;
}
abstract class A6 extends self::_A6&Object&A {
synthetic constructor •() → self::A6
: super self::_A6&Object&A::•()
;
}
abstract class A7 extends core::Record {
synthetic constructor •() → self::A7
: super core::Record::•()
;
}
abstract class A8 extends typ::A<core::Record> {
synthetic constructor •() → self::A8
: super typ::A::•()
;
}
abstract class A9 extends core::Record {
synthetic constructor •() → self::A9
: super core::Record::•()
;
}
static method foo1() → invalid-type
return throw "";
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw invalid-expression "pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
dynamic foo3() => const Record(); // Error.
^";
static method foo4() → dynamic
return <invalid-type>[];
static method foo5() → dynamic
return #C1;
static method foo6() → dynamic
return #C2;
static method foo7(invalid-type r) → dynamic
return null;
static method foo8({required invalid-type r = #C3}) → dynamic
return null;
static method foo9() → core::List<invalid-type>
return throw "";
static method foo10(core::List<invalid-type> l) → dynamic
return null;
static method foo11() → core::Record
return throw "";
static method foo12() → typ::A<core::Record>
return throw "";
static method foo13() → core::Record
return throw "";
static method foo14(core::Record r) → dynamic
return null;
static method foo15(typ::A<core::Record> l) → dynamic
return null;
static method foo16(core::Record l) → dynamic
return null;
static method foo17() → dynamic
return #C4;
static method foo18() → dynamic
return #C5;
static method foo19() → dynamic
return #C4;
static method main() → dynamic {}
library /*isNonNullableByDefault*/;
import self as typ;
import "dart:core" as core;
typedef FromSupportedR = core::Record;
typedef FromSupportedAR = typ::A<core::Record>;
typedef FromSupportedRR = core::Record;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → typ::A<typ::A::X%>
: super core::Object::•()
;
}
constants {
#C1 = TypeLiteralConstant(invalid-type)
#C2 = TypeLiteralConstant(core::List<invalid-type>*)
#C3 = null
#C4 = TypeLiteralConstant(core::Record*)
#C5 = TypeLiteralConstant(typ::A<core::Record*>*)
}

View file

@ -1,328 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A7 extends FromSupportedR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:7:9: Context: The issue arises via this type alias.
// typedef FromSupportedR = Record;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:11:9: Context: The issue arises via this type alias.
// typedef FromSupportedRR = FromSupportedR;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:9:13: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef R = Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:11:16: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR = A<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:13:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR2 = A<FromSupportedR>; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:15:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR3 = A<FromSupportedRR>; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:19:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef RR = FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:21:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// Record foo1() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:33:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo7(Record r) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:35:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo8({required Record r}) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:37:6: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// List<Record> foo9() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:39:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo10(List<Record> l) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:41:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedR foo11() => throw ''; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:45:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedRR foo13() => throw ''; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:47:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo14(FromSupportedR r) => null; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:51:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo16(FromSupportedRR l) => null; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A1 extends Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The type 'Record' can't be used as supertype.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A2 implements Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The type 'Record' can't be used as supertype.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:65:29: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A4 extends A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:67:32: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A5 implements A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:69:26: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A6 with A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A7 extends FromSupportedR {} // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A3 with Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The type 'Record' can't be used as supertype.
// abstract class A3 with Record {} // Error.
// ^
//
import self as self;
import "type_record_unsupported_lib.dart" as typ;
import "dart:core" as core;
import "org-dartlang-testcase:///type_record_unsupported_lib.dart";
typedef R = invalid-type;
typedef AR = typ::A<invalid-type>;
typedef AR2 = typ::A<core::Record>;
typedef AR3 = typ::A<core::Record>;
typedef AR4 = typ::A<typ::A<core::Record>>;
typedef RR = core::Record;
abstract class A1 extends core::Object {
synthetic constructor •() → self::A1
;
}
abstract class A2 extends core::Object {
synthetic constructor •() → self::A2
;
}
abstract class _A3&Object&Record = core::Object with core::Record /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&Record
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&Record {
synthetic constructor •() → self::A3
;
}
abstract class A4 extends typ::A<invalid-type> {
synthetic constructor •() → self::A4
;
}
abstract class A5 extends core::Object implements typ::A<invalid-type> {
synthetic constructor •() → self::A5
;
}
abstract class _A6&Object&A = core::Object with typ::A<invalid-type> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A6&Object&A
: super core::Object::•()
;
}
abstract class A6 extends self::_A6&Object&A {
synthetic constructor •() → self::A6
;
}
abstract class A7 extends core::Record {
synthetic constructor •() → self::A7
;
}
abstract class A8 extends typ::A<core::Record> {
synthetic constructor •() → self::A8
;
}
abstract class A9 extends core::Record {
synthetic constructor •() → self::A9
;
}
static method foo1() → invalid-type
;
static method foo2() → dynamic
;
static method foo3() → dynamic
;
static method foo4() → dynamic
;
static method foo5() → dynamic
;
static method foo6() → dynamic
;
static method foo7(invalid-type r) → dynamic
;
static method foo8({required invalid-type r}) → dynamic
;
static method foo9() → core::List<invalid-type>
;
static method foo10(core::List<invalid-type> l) → dynamic
;
static method foo11() → core::Record
;
static method foo12() → typ::A<core::Record>
;
static method foo13() → core::Record
;
static method foo14(core::Record r) → dynamic
;
static method foo15(typ::A<core::Record> l) → dynamic
;
static method foo16(core::Record l) → dynamic
;
static method foo17() → dynamic
;
static method foo18() → dynamic
;
static method foo19() → dynamic
;
static method main() → dynamic
;
library /*isNonNullableByDefault*/;
import self as typ;
import "dart:core" as core;
typedef FromSupportedR = core::Record;
typedef FromSupportedAR = typ::A<core::Record>;
typedef FromSupportedRR = core::Record;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → typ::A<typ::A::X%>
;
}

View file

@ -1,401 +0,0 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A7 extends FromSupportedR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:7:9: Context: The issue arises via this type alias.
// typedef FromSupportedR = Record;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:16: Error: 'Record' is restricted and can't be extended or implemented.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^
// pkg/front_end/testcases/records/type_record_unsupported_lib.dart:11:9: Context: The issue arises via this type alias.
// typedef FromSupportedRR = FromSupportedR;
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:9:13: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef R = Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:11:16: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR = A<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:13:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR2 = A<FromSupportedR>; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:15:17: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef AR3 = A<FromSupportedRR>; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:19:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// typedef RR = FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:21:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// Record foo1() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:33:14: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo7(Record r) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:35:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo8({required Record r}) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:37:6: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// List<Record> foo9() => throw ''; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:39:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo10(List<Record> l) => null; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:41:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedR foo11() => throw ''; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:45:1: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// FromSupportedRR foo13() => throw ''; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:47:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo14(FromSupportedR r) => null; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:51:15: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo16(FromSupportedRR l) => null; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A1 extends Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:59:27: Error: The type 'Record' can't be used as supertype.
// abstract class A1 extends Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A2 implements Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:61:30: Error: The type 'Record' can't be used as supertype.
// abstract class A2 implements Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:65:29: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A4 extends A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:67:32: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A5 implements A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:69:26: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A6 with A<Record> {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:71:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A7 extends FromSupportedR {} // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:75:27: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A9 extends FromSupportedRR {} // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// abstract class A3 with Record {} // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:63:24: Error: The type 'Record' can't be used as supertype.
// abstract class A3 with Record {} // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:23:23: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo2() => new Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: The class 'Record' is abstract and can't be instantiated.
// dynamic foo3() => const Record(); // Error.
// ^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// dynamic foo3() => const Record(); // Error.
// ^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:27:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo4() => <Record>[]; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:29:19: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo5() => Record; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:31:24: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo6() => List<Record>; // Error.
// ^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:53:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo17() => FromSupportedR; // Error.
// ^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/records/type_record_unsupported.dart:57:20: Error: The 'records' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher.
// dynamic foo19() => FromSupportedRR; // Error.
// ^^^^^^^^^^^^^^^
// pkg/front_end/testcases/records/type_record_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature.
// // @dart=2.17
// ^^^^^^^^^^^^^
//
import self as self;
import "type_record_unsupported_lib.dart" as typ;
import "dart:core" as core;
import "org-dartlang-testcase:///type_record_unsupported_lib.dart";
typedef R = invalid-type;
typedef AR = typ::A<invalid-type>;
typedef AR2 = typ::A<core::Record>;
typedef AR3 = typ::A<core::Record>;
typedef AR4 = typ::A<typ::A<core::Record>>;
typedef RR = core::Record;
abstract class A1 extends core::Object {
synthetic constructor •() → self::A1
: super core::Object::•()
;
}
abstract class A2 extends core::Object {
synthetic constructor •() → self::A2
: super core::Object::•()
;
}
abstract class _A3&Object&Record extends core::Object implements core::Record /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A3&Object&Record
: super core::Object::•()
;
}
abstract class A3 extends self::_A3&Object&Record {
synthetic constructor •() → self::A3
: super self::_A3&Object&Record::•()
;
}
abstract class A4 extends typ::A<invalid-type> {
synthetic constructor •() → self::A4
: super typ::A::•()
;
}
abstract class A5 extends core::Object implements typ::A<invalid-type> {
synthetic constructor •() → self::A5
: super core::Object::•()
;
}
abstract class _A6&Object&A extends core::Object implements typ::A<invalid-type> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A6&Object&A
: super core::Object::•()
;
}
abstract class A6 extends self::_A6&Object&A {
synthetic constructor •() → self::A6
: super self::_A6&Object&A::•()
;
}
abstract class A7 extends core::Record {
synthetic constructor •() → self::A7
: super core::Record::•()
;
}
abstract class A8 extends typ::A<core::Record> {
synthetic constructor •() → self::A8
: super typ::A::•()
;
}
abstract class A9 extends core::Record {
synthetic constructor •() → self::A9
: super core::Record::•()
;
}
static method foo1() → invalid-type
return throw "";
static method foo2() → dynamic
return throw new core::AbstractClassInstantiationError::•("Record");
static method foo3() → dynamic
return throw invalid-expression "pkg/front_end/testcases/records/type_record_unsupported.dart:25:25: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
dynamic foo3() => const Record(); // Error.
^";
static method foo4() → dynamic
return core::_GrowableList::•<invalid-type>(0);
static method foo5() → dynamic
return #C1;
static method foo6() → dynamic
return #C2;
static method foo7(invalid-type r) → dynamic
return null;
static method foo8({required invalid-type r = #C3}) → dynamic
return null;
static method foo9() → core::List<invalid-type>
return throw "";
static method foo10(core::List<invalid-type> l) → dynamic
return null;
static method foo11() → core::Record
return throw "";
static method foo12() → typ::A<core::Record>
return throw "";
static method foo13() → core::Record
return throw "";
static method foo14(core::Record r) → dynamic
return null;
static method foo15(typ::A<core::Record> l) → dynamic
return null;
static method foo16(core::Record l) → dynamic
return null;
static method foo17() → dynamic
return #C4;
static method foo18() → dynamic
return #C5;
static method foo19() → dynamic
return #C4;
static method main() → dynamic {}
library /*isNonNullableByDefault*/;
import self as typ;
import "dart:core" as core;
typedef FromSupportedR = core::Record;
typedef FromSupportedAR = typ::A<core::Record>;
typedef FromSupportedRR = core::Record;
abstract class A<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → typ::A<typ::A::X%>
: super core::Object::•()
;
}
constants {
#C1 = TypeLiteralConstant(invalid-type)
#C2 = TypeLiteralConstant(core::List<invalid-type>*)
#C3 = null
#C4 = TypeLiteralConstant(core::Record*)
#C5 = TypeLiteralConstant(typ::A<core::Record*>*)
}

View file

@ -1,11 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
abstract class A<X> {}
typedef FromSupportedR = Record;
typedef FromSupportedAR = A<Record>;
typedef FromSupportedRR = FromSupportedR;

View file

@ -21,8 +21,8 @@ regress/issue_39035.crash: EmptyOutput
regress/issue_39091_2: EmptyOutput
regress/utf_16_le_content.crash: EmptyOutput
const_functions/const_functions_const_ctor: FormatterCrash
const_functions/const_functions_const_ctor_error: FormatterCrash
const_functions/const_functions_const_ctor: FormatterCrash
const_functions/const_functions_const_factory: FormatterCrash
constructor_tearoffs/issue46133: FormatterCrash
constructor_tearoffs/issue47075: FormatterCrash
@ -38,8 +38,8 @@ extension_types/simple_method_resolution: FormatterCrash
extension_types/simple_operator_resolution: FormatterCrash
extension_types/simple_setter_resolution: FormatterCrash
extension_types/simple_show_and_hide: FormatterCrash
extension_types/simple_show_hide: FormatterCrash
extension_types/simple_show_hide_conflicts: FormatterCrash
extension_types/simple_show_hide: FormatterCrash
extension_types/type_variable_in_static_context: FormatterCrash
extension_types/various_hide_elements: FormatterCrash
extension_types/various_show_elements: FormatterCrash
@ -52,13 +52,13 @@ general/annotation_eof: FormatterCrash
general/bad_setter_abstract: FormatterCrash
general/bug31124: FormatterCrash
general/clone_function_type: FormatterCrash
general/constants/js_semantics/number_folds: FormatterCrash
general/constants/js_semantics/number_folds_opt_out: FormatterCrash
general/constants/js_semantics/number_folds: FormatterCrash
general/constants/non_const_constructor: FormatterCrash
general/constants/number_folds: FormatterCrash
general/constants/number_folds_opt_out: FormatterCrash
general/constants/various2: FormatterCrash
general/constants/number_folds: FormatterCrash
general/constants/various: FormatterCrash
general/constants/various2: FormatterCrash
general/constructor_initializer_invalid: FormatterCrash
general/duplicated_declarations: FormatterCrash
general/enum_super_constructor: FormatterCrash
@ -83,9 +83,10 @@ general/error_recovery/issue_43090.crash: FormatterCrash
general/extension_types_feature_not_enabled: FormatterCrash
general/function_type_default_value: FormatterCrash
general/incomplete_field_formal_parameter: FormatterCrash
general/invalid_operator2: FormatterCrash
general/invalid_operator: FormatterCrash
general/invalid_operator2: FormatterCrash
general/invalid_super_initializer: FormatterCrash
general/issue_46886: FormatterCrash
general/issue28565: FormatterCrash
general/issue41842: FormatterCrash
general/issue42997: FormatterCrash
@ -98,16 +99,14 @@ general/issue47922: FormatterCrash
general/issue48487: FormatterCrash
general/issue48487b: FormatterCrash
general/issue48919: FormatterCrash
general/issue_46886: FormatterCrash
general/issue_46886: FormatterCrash
general/macro_class: FormatterCrash
general/many_errors2: FormatterCrash
general/many_errors: FormatterCrash
general/many_errors2: FormatterCrash
general/missing_prefix_name: FormatterCrash
general/new_as_selector: FormatterCrash
general/null_aware_super: FormatterCrash
general/null_safety_invalid_experiment: FormatterCrash
general/null_safety_invalid_experiment_and_language_version: FormatterCrash
general/null_safety_invalid_experiment: FormatterCrash
general/records: FormatterCrash
general/records_opt_out: FormatterCrash
general/type_parameters_on_void: FormatterCrash
@ -126,15 +125,15 @@ macros/macro_class: FormatterCrash
macros/multiple_augment_class: FormatterCrash
macros/multiple_imports: FormatterCrash
macros/scope_access: FormatterCrash
nnbd_mixed/inheritance_from_opt_in: FormatterCrash
nnbd_mixed/issue41597: FormatterCrash
nnbd_mixed/null_safety_invalid_language_version: FormatterCrash
nnbd/abstract_field_errors: FormatterCrash
nnbd/duplicates_instance_extension: FormatterCrash
nnbd/field_vs_setter: FormatterCrash
nnbd/forbidden_supers: FormatterCrash
nnbd/later: FormatterCrash
nnbd/nonfield_vs_setter: FormatterCrash
nnbd_mixed/inheritance_from_opt_in: FormatterCrash
nnbd_mixed/issue41597: FormatterCrash
nnbd_mixed/null_safety_invalid_language_version: FormatterCrash
nonfunction_type_aliases/old_version: FormatterCrash
rasta/bad_redirection: FormatterCrash
rasta/issue_000032: FormatterCrash
@ -150,7 +149,6 @@ records/record_literal_errors: FormatterCrash
records/record_type: FormatterCrash
records/record_type_errors: FormatterCrash
records/record_type_unsupported: FormatterCrash
records/type_record: FormatterCrash
regress/ambiguous_builder_01: FormatterCrash
regress/issue_29942: FormatterCrash
regress/issue_29944: FormatterCrash

View file

@ -28,7 +28,6 @@ class CoreTypes {
'Function',
'Invocation',
'FallThroughError',
'Record',
],
'dart:_internal': [
'LateInitializationErrorImpl',

View file

@ -194,7 +194,6 @@ part "num.dart";
part "object.dart";
part "pattern.dart";
part "print.dart";
part "record.dart";
part "regexp.dart";
part "set.dart";
part "sink.dart";

View file

@ -29,7 +29,6 @@ core_sdk_sources = [
"object.dart",
"pattern.dart",
"print.dart",
"record.dart",
"regexp.dart",
"set.dart",
"sink.dart",

View file

@ -1,11 +0,0 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of dart.core;
/// The base class for all record types.
///
/// The run-time type of a record object is a record type, and as such, a
/// subtype of [Record].
abstract class Record {}

View file

@ -16,8 +16,8 @@ main() {
// [cfe] Record type with one entry requires a trailing comma.
() emptyRecord = Record.empty;
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER
// [cfe] Member not found: 'empty'.
// ^^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER
// [cfe] Undefined name 'Record'.
print(emptyRecord);
}

View file

@ -46,12 +46,6 @@ main() {
({int ok}) oneElementNamedRecord = (ok: 1);
print(oneElementNamedRecord);
() emptyRecord = Record.empty;
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER
// [cfe] Member not found: 'empty'.
print(emptyRecord);
}
(int, T) f1<T>(T t) {

View file

@ -33,10 +33,8 @@ main() {
//^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^^^^^^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER
// [cfe] Member not found: 'empty'.
// ^^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER
// [cfe] Undefined name 'Record'.
print(emptyRecord);
}

View file

@ -134,17 +134,6 @@ main() {
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
print(oneElementNamedRecord);
() emptyRecord = Record.empty;
//^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^^^^^^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER
// [cfe] Member not found: 'empty'.
print(emptyRecord);
}
(int, T) f1<T>(T t) {