[cfe] Create normal bodies for redirecting factories

Replace bogus body created for redirecting factories with a
normal body which calls target factory or constructor and
forwards all arguments. Such a body can be used by back-ends
if they choose to treat redirecting factories as ordinary
factories.

TEST=ci
Fixes https://github.com/dart-lang/sdk/issues/41915
Issue https://github.com/dart-lang/sdk/issues/46231

Change-Id: I62c83bcc9005995e85de049d3d929ca86a75297f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208681
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Alexander Markov
2021-08-04 17:51:07 +00:00
committed by commit-bot@chromium.org
parent ada4278fd5
commit 300a2ea952
257 changed files with 969 additions and 769 deletions
@@ -12,7 +12,7 @@ import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
import 'package:_fe_analyzer_shared/src/scanner/scanner.dart' show StringToken;
import 'package:kernel/kernel.dart' show Component, Statement;
import 'package:kernel/kernel.dart' show Component;
import 'package:kernel/ast.dart' as ir;
@@ -37,8 +37,6 @@ import '../fasta/compiler_context.dart' show CompilerContext;
import '../kernel_generator_impl.dart' show generateKernelInternal;
import '../fasta/kernel/redirecting_factory_body.dart' as redirecting;
import 'compiler_state.dart' show InitializedCompilerState;
import 'util.dart' show equalLists, equalMaps, equalSets;
@@ -242,18 +240,4 @@ Iterable<String> getSupportedLibraryNames(
/// constructor.
// TODO(sigmund): Delete this API once `member.isRedirectingFactory`
// is implemented correctly for patch files (Issue #33495).
bool isRedirectingFactory(ir.Procedure member) {
if (member.kind == ir.ProcedureKind.Factory) {
Statement? body = member.function.body;
if (body is redirecting.RedirectingFactoryBody) return true;
if (body is ir.ExpressionStatement) {
ir.Expression expression = body.expression;
if (expression is ir.Let) {
if (expression.variable.name == redirecting.letName) {
return true;
}
}
}
}
return false;
}
bool isRedirectingFactory(ir.Procedure member) => member.isRedirectingFactory;
@@ -44,6 +44,8 @@ import '../fasta_codes.dart';
import '../kernel/kernel_helper.dart';
import '../kernel/redirecting_factory_body.dart' show RedirectingFactoryBody;
import '../loader.dart';
import '../modifier.dart';
@@ -921,7 +923,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
targetNode.computeFunctionType(library.nonNullable);
if (typeArguments != null &&
targetFunctionType.typeParameters.length != typeArguments.length) {
addProblem(
addProblemForRedirectingFactory(
factory,
templateTypeArgumentMismatch
.withArguments(targetFunctionType.typeParameters.length),
redirectionTarget.charOffset,
@@ -946,7 +949,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
Loader loader = library.loader;
if (!typeEnvironment.isSubtypeOf(typeArgument, typeParameterBound,
SubtypeCheckMode.ignoringNullabilities)) {
addProblem(
addProblemForRedirectingFactory(
factory,
templateRedirectingFactoryIncompatibleTypeArgument.withArguments(
typeArgument,
typeParameterBound,
@@ -957,7 +961,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
} else if (library.isNonNullableByDefault && loader is SourceLoader) {
if (!typeEnvironment.isSubtypeOf(typeArgument, typeParameterBound,
SubtypeCheckMode.withNullabilities)) {
addProblem(
addProblemForRedirectingFactory(
factory,
templateRedirectingFactoryIncompatibleTypeArgument
.withArguments(typeArgument, typeParameterBound,
library.isNonNullableByDefault),
@@ -1002,9 +1007,65 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
}
}
bool _isCyclicRedirectingFactory(RedirectingFactoryBuilder factory) {
// We use the [tortoise and hare algorithm]
// (https://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare) to
// handle cycles.
Builder? tortoise = factory;
Builder? hare = factory.redirectionTarget.target;
if (hare == factory) {
return true;
}
while (tortoise != hare) {
// Hare moves 2 steps forward.
if (hare is! RedirectingFactoryBuilder) {
return false;
}
hare = hare.redirectionTarget.target;
if (hare == factory) {
return true;
}
if (hare is! RedirectingFactoryBuilder) {
return false;
}
hare = hare.redirectionTarget.target;
if (hare == factory) {
return true;
}
// Tortoise moves one step forward. No need to test type of tortoise
// as it follows hare which already checked types.
tortoise =
(tortoise as RedirectingFactoryBuilder).redirectionTarget.target;
}
// Cycle found, but original factory doesn't belong to a cycle.
return false;
}
void addProblemForRedirectingFactory(RedirectingFactoryBuilder factory,
Message message, int charOffset, int length) {
addProblem(message, charOffset, length);
String text = library.loader.target.context
.format(
message.withLocation(fileUri, charOffset, length), Severity.error)
.plain;
factory.body = new RedirectingFactoryBody.error(text);
}
@override
void checkRedirectingFactory(
RedirectingFactoryBuilder factory, TypeEnvironment typeEnvironment) {
// Check that factory declaration is not cyclic.
if (_isCyclicRedirectingFactory(factory)) {
addProblemForRedirectingFactory(
factory,
templateCyclicRedirectingFactoryConstructors
.withArguments("${factory.member.enclosingClass!.name}"
"${factory.name == '' ? '' : '.${factory.name}'}"),
factory.charOffset,
noLength);
return;
}
// The factory type cannot contain any type parameters other than those of
// its enclosing class, because constructors cannot specify type parameters
// of their own.
@@ -1016,13 +1077,16 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
// TODO(hillerstrom): It would be preferable to know whether a failure
// happened during [_computeRedirecteeType].
if (redirecteeType == null) return;
if (redirecteeType == null) {
return;
}
// Check whether [redirecteeType] <: [factoryType].
Loader loader = library.loader;
if (!typeEnvironment.isSubtypeOf(
redirecteeType, factoryType, SubtypeCheckMode.ignoringNullabilities)) {
addProblem(
addProblemForRedirectingFactory(
factory,
templateIncompatibleRedirecteeFunctionType.withArguments(
redirecteeType, factoryType, library.isNonNullableByDefault),
factory.redirectionTarget.charOffset,
@@ -1030,7 +1094,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
} else if (library.isNonNullableByDefault && loader is SourceLoader) {
if (!typeEnvironment.isSubtypeOf(
redirecteeType, factoryType, SubtypeCheckMode.withNullabilities)) {
addProblem(
addProblemForRedirectingFactory(
factory,
templateIncompatibleRedirecteeFunctionType.withArguments(
redirecteeType, factoryType, library.isNonNullableByDefault),
factory.redirectionTarget.charOffset,
@@ -207,7 +207,7 @@ class SourceFactoryBuilder extends FunctionBuilderImpl {
if (bodyInternal != null) {
unexpected("null", "${bodyInternal.runtimeType}", charOffset, fileUri);
}
bodyInternal = new RedirectingFactoryBody(target, typeArguments);
bodyInternal = new RedirectingFactoryBody(target, typeArguments, function);
function.body = bodyInternal;
bodyInternal?.parent = function;
if (isPatch) {
@@ -307,7 +307,7 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder {
noLength, fileUri);
}
bodyInternal = new RedirectingFactoryBody(target, typeArguments);
bodyInternal = new RedirectingFactoryBody(target, typeArguments, function);
function.body = bodyInternal;
bodyInternal?.parent = function;
_procedure.isRedirectingFactory = true;
@@ -436,7 +436,10 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder {
target.enclosingClass!.typeParameters.length, const DynamicType(),
growable: true);
}
member.function!.body = new RedirectingFactoryBody(target, typeArguments);
function.body =
new RedirectingFactoryBody(target, typeArguments, function);
function.body!.parent = function;
}
if (_factoryTearOff != null &&
(target is Constructor || target is Procedure && target.isFactory)) {
@@ -1247,13 +1247,10 @@ class BodyBuilder extends ScopeListener<JumpTarget>
if (redirectingFactoryBody != null) {
// If the redirection target is itself a redirecting factory, it means
// that it is unresolved.
assert(redirectingFactoryBody.isUnresolved);
String errorName = redirectingFactoryBody.unresolvedName!;
replacementNode = buildProblem(
fasta.templateMethodNotFound.withArguments(errorName),
fileOffset,
noLength,
suppressMessage: true);
assert(redirectingFactoryBody.isError);
String errorMessage = redirectingFactoryBody.errorMessage!;
replacementNode = new InvalidExpression(errorMessage)
..fileOffset = fileOffset;
} else {
Substitution substitution = Substitution.fromPairs(
initialTarget.function.typeParameters, arguments.types);
@@ -2373,10 +2370,8 @@ class BodyBuilder extends ScopeListener<JumpTarget>
push(forest.createStringLiteral(offsetForToken(token), value));
} else {
int count = 1 + interpolationCount * 2;
List<Object>? parts = const FixedNullableList<Object>().popNonNullable(
stack,
count,
/* dummyValue = */ 0);
List<Object>? parts = const FixedNullableList<Object>()
.popNonNullable(stack, count, /* dummyValue = */ 0);
if (parts == null) {
push(new ParserRecovery(endToken.charOffset));
return;
@@ -6427,12 +6422,8 @@ class BodyBuilder extends ScopeListener<JumpTarget>
allowPotentiallyConstantType: allowPotentiallyConstantType);
if (message == null) return unresolved;
return new UnresolvedType(
new NamedTypeBuilder(
typeParameter.name!,
builder.nullabilityBuilder,
/* arguments = */ null,
unresolved.fileUri,
unresolved.charOffset)
new NamedTypeBuilder(typeParameter.name!, builder.nullabilityBuilder,
/* arguments = */ null, unresolved.fileUri, unresolved.charOffset)
..bind(new InvalidTypeDeclarationBuilder(
typeParameter.name!, message)),
unresolved.charOffset,
@@ -31,48 +31,63 @@ const String letName = "#redirecting_factory";
/// the redirection target in a factory method body.
const String varNamePrefix = "#typeArg";
class RedirectingFactoryBody extends ExpressionStatement {
RedirectingFactoryBody.internal(Expression value,
[List<DartType>? typeArguments])
: super(new Let(new VariableDeclaration(letName, initializer: value),
encodeTypeArguments(typeArguments)));
class RedirectingFactoryBody extends ReturnStatement {
RedirectingFactoryBody._internal(Expression value) : super(value);
RedirectingFactoryBody(Member target, [List<DartType>? typeArguments])
: this.internal(new StaticGet(target), typeArguments);
RedirectingFactoryBody(
Member target, List<DartType> typeArguments, FunctionNode function)
: this._internal(_makeForwardingCall(target, typeArguments, function));
RedirectingFactoryBody.unresolved(String name)
: this.internal(new StringLiteral(name));
RedirectingFactoryBody.error(String errorMessage)
: this._internal(new InvalidExpression(errorMessage));
Member? get target {
dynamic value = getValue(expression);
return value is StaticGet ? value.target : null;
final Expression? value = this.expression;
if (value is StaticInvocation) {
return value.target;
} else if (value is ConstructorInvocation) {
return value.target;
}
return null;
}
String? get unresolvedName {
dynamic value = getValue(expression);
return value is StringLiteral ? value.value : null;
String? get errorMessage {
final Expression? value = this.expression;
return value is InvalidExpression ? value.message : null;
}
bool get isUnresolved => unresolvedName != null;
bool get isError => errorMessage != null;
List<DartType>? get typeArguments {
if (expression is Let) {
Let bodyExpression = expression as Let;
if (bodyExpression.variable.name == letName) {
return decodeTypeArguments(bodyExpression.body);
}
final Expression? value = this.expression;
if (value is InvocationExpression) {
return value.arguments.types;
}
return null;
}
static getValue(Expression expression) {
if (expression is Let) {
VariableDeclaration variable = expression.variable;
if (variable.name == letName) {
return variable.initializer;
}
static Expression _makeForwardingCall(
Member target, List<DartType> typeArguments, FunctionNode function) {
final List<Expression> positional = function.positionalParameters
.map((v) => new VariableGet(v)..fileOffset = v.fileOffset)
.toList();
final List<NamedExpression> named = function.namedParameters
.map((v) => new NamedExpression(
v.name!, new VariableGet(v)..fileOffset = v.fileOffset)
..fileOffset = v.fileOffset)
.toList();
final Arguments args =
new Arguments(positional, named: named, types: typeArguments);
if (target is Procedure) {
return new StaticInvocation(target, args)
..fileOffset = function.fileOffset;
} else if (target is Constructor) {
return new ConstructorInvocation(target, args)
..fileOffset = function.fileOffset;
} else {
throw 'Unexpected target for redirecting factory:'
' ${target.runtimeType} $target';
}
return null;
}
static void restoreFromDill(Procedure factory) {
@@ -80,41 +95,51 @@ class RedirectingFactoryBody extends ExpressionStatement {
// dill files. See `ClassBuilder.addRedirectingConstructor` in
// [kernel_class_builder.dart](kernel_class_builder.dart).
FunctionNode function = factory.function;
ExpressionStatement statement = function.body as ExpressionStatement;
List<DartType>? typeArguments;
if (statement.expression is Let) {
Let expression = statement.expression as Let;
typeArguments = decodeTypeArguments(expression.body);
}
function.body = new RedirectingFactoryBody.internal(
getValue(statement.expression), typeArguments)
Expression value = (function.body as ReturnStatement).expression!;
function.body = new RedirectingFactoryBody._internal(value)
..parent = function;
}
static bool hasRedirectingFactoryBodyShape(Procedure factory) {
if (factory.function.body is! ExpressionStatement) return false;
Expression body = (factory.function.body as ExpressionStatement).expression;
if (body is Let &&
body.variable.name == letName &&
body.variable.type is DynamicType &&
body.variable.initializer is StaticGet) {
Expression currentArgument = body.body;
int argumentCount = 0;
while (currentArgument is! InvalidExpression) {
Expression argument = currentArgument;
if (argument is Let) {
String argumentName = "${varNamePrefix}${argumentCount}";
if (argument.variable.name != argumentName) {
return false;
}
if (argument.variable.initializer is! NullLiteral) {
return false;
}
currentArgument = argument.body;
++argumentCount;
} else {
final FunctionNode function = factory.function;
final Statement? body = function.body;
if (body is! ReturnStatement) return false;
final Expression? value = body.expression;
if (body is InvalidExpression) {
return true;
} else if (value is StaticInvocation || value is ConstructorInvocation) {
// Verify that invocation forwards all arguments.
final Arguments args = (value as InvocationExpression).arguments;
if (args.positional.length != function.positionalParameters.length) {
return false;
}
int i = 0;
for (Expression arg in args.positional) {
if (arg is! VariableGet) {
return false;
}
if (arg.variable != function.positionalParameters[i]) {
return false;
}
++i;
}
if (args.named.length != function.namedParameters.length) {
return false;
}
i = 0;
for (NamedExpression arg in args.named) {
final Expression value = arg.value;
if (value is! VariableGet) {
return false;
}
final VariableDeclaration param = function.namedParameters[i];
if (value.variable != param) {
return false;
}
if (arg.name != param.name) {
return false;
}
++i;
}
return true;
} else {
@@ -122,33 +147,6 @@ class RedirectingFactoryBody extends ExpressionStatement {
}
}
static Expression encodeTypeArguments(List<DartType>? typeArguments) {
Expression result = new InvalidExpression(null);
if (typeArguments == null) {
return result;
}
for (int i = typeArguments.length - 1; i >= 0; i--) {
result = new Let(
new VariableDeclaration("$varNamePrefix$i",
type: typeArguments[i], initializer: new NullLiteral()),
result);
}
return result;
}
static List<DartType>? decodeTypeArguments(Expression encoded) {
if (encoded is InvalidExpression) {
return null;
}
List<DartType> result = <DartType>[];
while (encoded is Let) {
Let head = encoded;
result.add(head.variable.type);
encoded = head.body;
}
return result;
}
@override
String toString() {
return "RedirectingFactoryBody(${toStringInternal()})";
@@ -194,10 +192,10 @@ RedirectionTarget? getRedirectionTarget(Procedure member, EnsureLoaded helper) {
helper.ensureLoaded(hare);
RedirectingFactoryBody? hareBody = getRedirectingFactoryBody(hare);
while (tortoise != hare) {
if (tortoiseBody?.isUnresolved ?? true) {
if (tortoiseBody == null || tortoiseBody.isError) {
return new RedirectionTarget(tortoise, typeArguments);
}
Member nextTortoise = tortoiseBody!.target!;
Member nextTortoise = tortoiseBody.target!;
helper.ensureLoaded(nextTortoise);
List<DartType>? nextTypeArguments = tortoiseBody.typeArguments;
if (nextTypeArguments != null) {
@@ -29,10 +29,7 @@ import '../fasta_codes.dart'
import '../type_inference/type_schema.dart' show UnknownType;
import 'redirecting_factory_body.dart'
show
RedirectingFactoryBody,
getRedirectingFactoryBody,
isRedirectingFactory;
show RedirectingFactoryBody, isRedirectingFactory;
List<LocatedMessage> verifyComponent(Component component, Target target,
{bool? isOutline, bool? afterConst, bool skipPlatform: false}) {
@@ -284,13 +281,11 @@ class FastaVerifyingVisitor extends VerifyingVisitor {
bool hasBody = isRedirectingFactory(node) ||
RedirectingFactoryBody.hasRedirectingFactoryBodyShape(node);
bool hasFlag = node.isRedirectingFactory;
if (hasBody != hasFlag) {
String hasBodyString = hasBody ? "has" : "doesn't have";
String hasFlagString = hasFlag ? "has" : "doesn't have";
if (hasFlag && !hasBody) {
problem(
node,
"Procedure '${node.name}' ${hasBodyString} a body "
"of a redirecting factory, but ${hasFlagString} the "
"Procedure '${node.name}' doesn't have a body "
"of a redirecting factory, but has the "
"'isRedirectingFactory' bit set.");
}
@@ -429,10 +424,6 @@ class FastaVerifyingVisitor extends VerifyingVisitor {
void visitStaticInvocation(StaticInvocation node) {
enterTreeNode(node);
super.visitStaticInvocation(node);
RedirectingFactoryBody? body = getRedirectingFactoryBody(node.target);
if (body != null) {
problem(node, "Attempt to invoke redirecting factory.");
}
exitTreeNode(node);
}
@@ -39,7 +39,6 @@ import '../fasta_codes.dart';
import '../kernel/combined_member_signature.dart';
import '../kernel/kernel_builder.dart' show compareProcedures;
import '../kernel/kernel_target.dart' show KernelTarget;
import '../kernel/redirecting_factory_body.dart' show RedirectingFactoryBody;
import '../kernel/redirecting_factory_body.dart' show redirectingName;
import '../kernel/type_algorithms.dart'
show Variance, computeTypeVariableBuilderVariance;
@@ -937,42 +936,44 @@ class SourceClassBuilder extends ClassBuilderImpl
_addRedirectingConstructor(
declaration, library, getterReference);
}
Member? targetNode;
if (targetBuilder is FunctionBuilder) {
List<DartType> typeArguments = declaration.typeArguments ??
new List<DartType>.filled(
targetBuilder
.member.enclosingClass!.typeParameters.length,
const UnknownType());
declaration.setRedirectingFactoryBody(
targetBuilder.member, typeArguments);
targetNode = targetBuilder.member;
} else if (targetBuilder is DillMemberBuilder) {
List<DartType> typeArguments = declaration.typeArguments ??
new List<DartType>.filled(
targetBuilder
.member.enclosingClass!.typeParameters.length,
const UnknownType());
declaration.setRedirectingFactoryBody(
targetBuilder.member, typeArguments);
targetNode = targetBuilder.member;
} else if (targetBuilder is AmbiguousBuilder) {
addProblem(
addProblemForRedirectingFactory(
declaration,
templateDuplicatedDeclarationUse
.withArguments(redirectionTarget.fullNameForErrors),
redirectionTarget.charOffset,
noLength);
// CoreTypes aren't computed yet, and this is the outline
// phase. So we can't and shouldn't create a method body.
declaration.body = new RedirectingFactoryBody.unresolved(
redirectionTarget.fullNameForErrors);
} else {
addProblem(
addProblemForRedirectingFactory(
declaration,
templateRedirectionTargetNotFound
.withArguments(redirectionTarget.fullNameForErrors),
redirectionTarget.charOffset,
noLength);
// CoreTypes aren't computed yet, and this is the outline
// phase. So we can't and shouldn't create a method body.
declaration.body = new RedirectingFactoryBody.unresolved(
redirectionTarget.fullNameForErrors);
}
if (targetNode != null &&
targetNode is Constructor &&
targetNode.enclosingClass.isAbstract) {
addProblemForRedirectingFactory(
declaration,
templateAbstractRedirectedClassInstantiation
.withArguments(redirectionTarget.fullNameForErrors),
redirectionTarget.charOffset,
noLength);
targetNode = null;
}
if (targetNode != null) {
List<DartType> typeArguments = declaration.typeArguments ??
new List<DartType>.filled(
targetNode.enclosingClass!.typeParameters.length,
const UnknownType());
declaration.setRedirectingFactoryBody(
targetNode, typeArguments);
}
}
}
+2
View File
@@ -169,6 +169,8 @@ CyclicClassHierarchy/part_wrapped_script1: Fail
CyclicClassHierarchy/part_wrapped_script2: Fail
CyclicClassHierarchy/script1: Fail # We report an error for each class involved in the cycle.
CyclicClassHierarchy/script2: Fail # We report an error for each class involved in the cycle.
CyclicRedirectingFactoryConstructors/part_wrapped_script: Fail # Error is reported for each factory involved in the cycle.
CyclicRedirectingFactoryConstructors/script: Fail # Error is reported for each factory involved in the cycle.
CyclicTypedef/example: Fail
DefaultListConstructorError/analyzerCode: Fail
DefaultListConstructorError/example: Fail
-1
View File
@@ -33,7 +33,6 @@ front_end/lib/src/fasta/scanner/string_scanner/ImportsTwice: Fail
front_end/lib/src/fasta/scanner/token/ImportsTwice: Fail
front_end/lib/src/fasta/scanner/utf8_bytes_scanner/ImportsTwice: Fail
front_end/lib/src/fasta/source/scope_listener/Exports: Fail
front_end/lib/src/fasta/source/source_class_builder/ImportsTwice: Fail
front_end/lib/src/fasta/source/value_kinds/ImportsTwice: Fail
front_end/lib/src/testing/id_testing_helper/Exports: Fail
kernel/lib/ast/Exports: Fail
@@ -12,7 +12,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static factory fact<T extends core::Object? = dynamic>() → self::A<self::A::fact::T%>
return new self::A::•<self::A::fact::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
}
static const field <T extends core::Object? = dynamic>() → self::A<T%> a = #C1;
static const field () → self::A<core::int> b = #C2;
@@ -12,7 +12,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static factory fact<T extends core::Object? = dynamic>() → self::A<self::A::fact::T%>
return new self::A::•<self::A::fact::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
}
static const field <T extends core::Object? = dynamic>() → self::A<T%> a = #C1;
static const field () → self::A<core::int> b = #C2;
@@ -12,7 +12,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static factory fact<T extends core::Object? = dynamic>() → self::A<self::A::fact::T%>
return new self::A::•<self::A::fact::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
}
static const field <T extends core::Object? = dynamic>() → self::A<T%> a = #C1;
static const field () → self::A<core::int> b = #C2;
@@ -11,7 +11,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static factory fact<T extends core::Object? = dynamic>() → self::A<self::A::fact::T%>
;
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
}
static const field <T extends core::Object? = dynamic>() → self::A<T%> a = self::A::•;
static const field () → self::A<core::int> b = self::A::•<core::int>;
@@ -54,4 +54,4 @@ Evaluated: TypedefTearOff @ org-dartlang-testcase:///const_tear_off.dart:28:11 -
Evaluated: Instantiation @ org-dartlang-testcase:///const_tear_off.dart:29:11 -> InstantiationConstant(A.fact<int*>)
Evaluated: TypedefTearOff @ org-dartlang-testcase:///const_tear_off.dart:30:11 -> TypedefTearOffConstant(<T>A.redirect<int>)
Evaluated: Instantiation @ org-dartlang-testcase:///const_tear_off.dart:31:11 -> InstantiationConstant(A.redirect<int*>)
Extra constant evaluation: evaluated: 23, effectively constant: 18
Extra constant evaluation: evaluated: 21, effectively constant: 18
@@ -12,7 +12,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static factory fact<T extends core::Object? = dynamic>() → self::A<self::A::fact::T%>
return new self::A::•<self::A::fact::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
}
static const field <T extends core::Object? = dynamic>() → self::A<T%> a = #C1;
static const field () → self::A<core::int> b = #C2;
@@ -96,6 +96,6 @@ class E4 extends core::Object {
: super core::Object::•()
;
static factory •() → self::E4
let dynamic #redirecting_factory = self::E4::_ in invalid-expression;
return new self::E4::_();
}
static method main() → dynamic {}
@@ -96,6 +96,6 @@ class E4 extends core::Object {
: super core::Object::•()
;
static factory •() → self::E4
let Never #redirecting_factory = self::E4::_ in invalid-expression;
return new self::E4::_();
}
static method main() → dynamic {}
@@ -96,6 +96,6 @@ class E4 extends core::Object {
: super core::Object::•()
;
static factory •() → self::E4
let dynamic #redirecting_factory = self::E4::_ in invalid-expression;
return new self::E4::_();
}
static method main() → dynamic {}
@@ -86,7 +86,7 @@ class E4 extends core::Object {
constructor _() → self::E4
;
static factory •() → self::E4
let dynamic #redirecting_factory = self::E4::_ in invalid-expression;
return new self::E4::_();
}
static method main() → dynamic
;
@@ -96,6 +96,6 @@ class E4 extends core::Object {
: super core::Object::•()
;
static factory •() → self::E4
let Never #redirecting_factory = self::E4::_ in invalid-expression;
return new self::E4::_();
}
static method main() → dynamic {}
@@ -194,7 +194,7 @@ class Class2 extends core::Object {
static method _#named#tearOff() → mai::Class2
return new mai::Class2::named();
static factory redirect() → mai::Class2
let dynamic #redirecting_factory = mai::Class2::named in invalid-expression;
return new mai::Class2::named();
static method _#redirect#tearOff() → mai::Class2
return new mai::Class2::named();
}
@@ -218,7 +218,7 @@ class Class4<T extends core::Object? = dynamic> extends core::Object {
static method _#new#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#new#tearOff::T%>
return mai::Class4::•<mai::Class4::_#new#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::redirect::T%>
let dynamic #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::Class4::_<mai::Class4::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#redirect#tearOff::T%>
return new mai::Class4::_<mai::Class4::_#redirect#tearOff::T%>();
}
@@ -194,7 +194,7 @@ class Class2 extends core::Object {
static method _#named#tearOff() → mai::Class2
return new mai::Class2::named();
static factory redirect() → mai::Class2
let Never #redirecting_factory = mai::Class2::named in invalid-expression;
return new mai::Class2::named();
static method _#redirect#tearOff() → mai::Class2
return new mai::Class2::named();
}
@@ -218,7 +218,7 @@ class Class4<T extends core::Object? = dynamic> extends core::Object {
static method _#new#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#new#tearOff::T%>
return mai::Class4::•<mai::Class4::_#new#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::redirect::T%>
let Never #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::Class4::_<mai::Class4::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#redirect#tearOff::T%>
return new mai::Class4::_<mai::Class4::_#redirect#tearOff::T%>();
}
@@ -194,7 +194,7 @@ class Class2 extends core::Object {
static method _#named#tearOff() → mai::Class2
return new mai::Class2::named();
static factory redirect() → mai::Class2
let dynamic #redirecting_factory = mai::Class2::named in invalid-expression;
return new mai::Class2::named();
static method _#redirect#tearOff() → mai::Class2
return new mai::Class2::named();
}
@@ -218,7 +218,7 @@ class Class4<T extends core::Object? = dynamic> extends core::Object {
static method _#new#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#new#tearOff::T%>
return mai::Class4::•<mai::Class4::_#new#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::redirect::T%>
let dynamic #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::Class4::_<mai::Class4::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#redirect#tearOff::T%>
return new mai::Class4::_<mai::Class4::_#redirect#tearOff::T%>();
}
@@ -29,7 +29,7 @@ class Class2 extends core::Object {
static method _#named#tearOff() → self2::Class2
return new self2::Class2::named();
static factory redirect() → self2::Class2
let dynamic #redirecting_factory = self2::Class2::named in invalid-expression;
return new self2::Class2::named();
static method _#redirect#tearOff() → self2::Class2
return new self2::Class2::named();
}
@@ -51,7 +51,7 @@ class Class4<T extends core::Object? = dynamic> extends core::Object {
static method _#new#tearOff<T extends core::Object? = dynamic>() → self2::Class4<self2::Class4::_#new#tearOff::T%>
return self2::Class4::•<self2::Class4::_#new#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self2::Class4<self2::Class4::redirect::T%>
let dynamic #redirecting_factory = self2::Class4::_ in let self2::Class4::redirect::T% #typeArg0 = null in invalid-expression;
return new self2::Class4::_<self2::Class4::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → self2::Class4<self2::Class4::_#redirect#tearOff::T%>
return new self2::Class4::_<self2::Class4::_#redirect#tearOff::T%>();
}
@@ -194,7 +194,7 @@ class Class2 extends core::Object {
static method _#named#tearOff() → mai::Class2
return new mai::Class2::named();
static factory redirect() → mai::Class2
let Never #redirecting_factory = mai::Class2::named in invalid-expression;
return new mai::Class2::named();
static method _#redirect#tearOff() → mai::Class2
return new mai::Class2::named();
}
@@ -218,7 +218,7 @@ class Class4<T extends core::Object? = dynamic> extends core::Object {
static method _#new#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#new#tearOff::T%>
return mai::Class4::•<mai::Class4::_#new#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::redirect::T%>
let Never #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::Class4::_<mai::Class4::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::Class4<mai::Class4::_#redirect#tearOff::T%>
return new mai::Class4::_<mai::Class4::_#redirect#tearOff::T%>();
}
@@ -42,7 +42,7 @@ class Class1<T extends core::Object? = dynamic> extends core::Object {
static method _#_#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#_#tearOff::T%>
return new self::Class1::_<self::Class1::_#_#tearOff::T%>();
static factory •<T extends core::Object? = dynamic>() → self::Class1<self::Class1::•::T%>
let dynamic #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression;
return new self::Class1::_<self::Class1::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#new#tearOff::T%>
return new self::Class1::_<self::Class1::_#new#tearOff::T%>();
}
@@ -54,7 +54,7 @@ class Class2<T extends core::num> extends core::Object {
static method _#_#tearOff<T extends core::num>() → self::Class2<self::Class2::_#_#tearOff::T>
return new self::Class2::_<self::Class2::_#_#tearOff::T>();
static factory •<T extends core::num>() → self::Class2<self::Class2::•::T>
let dynamic #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression;
return new self::Class2::_<self::Class2::•::T>();
static method _#new#tearOff<T extends core::num>() → self::Class2<self::Class2::_#new#tearOff::T>
return new self::Class2::_<self::Class2::_#new#tearOff::T>();
}
@@ -66,7 +66,7 @@ class Class3<T extends self::Class3::S% = dynamic, S extends core::Object? = dyn
static method _#_#tearOff<T extends self::Class3::_#_#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>
return new self::Class3::_<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>();
static factory •<T extends self::Class3::•::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::•::T%, self::Class3::•::S%>
let dynamic #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression;
return new self::Class3::_<self::Class3::•::T%, self::Class3::•::S%>();
static method _#new#tearOff<T extends self::Class3::_#new#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>
return new self::Class3::_<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>();
}
@@ -78,7 +78,7 @@ class Class4<T extends self::Class4<self::Class4::T> = self::Class4<dynamic>> ex
static method _#_#tearOff<T extends self::Class4<self::Class4::_#_#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#_#tearOff::T>
return new self::Class4::_<self::Class4::_#_#tearOff::T>();
static factory •<T extends self::Class4<self::Class4::•::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::•::T>
let dynamic #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression;
return new self::Class4::_<self::Class4::•::T>();
static method _#new#tearOff<T extends self::Class4<self::Class4::_#new#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#new#tearOff::T>
return new self::Class4::_<self::Class4::_#new#tearOff::T>();
}
@@ -90,7 +90,7 @@ class Class4int extends self::Class4<self::Class4int> {
static method _#_#tearOff() → self::Class4int
return new self::Class4int::_();
static factory •() → self::Class4int
let dynamic #redirecting_factory = self::Class4int::_ in invalid-expression;
return new self::Class4int::_();
static method _#new#tearOff() → self::Class4int
return new self::Class4int::_();
}
@@ -42,7 +42,7 @@ class Class1<T extends core::Object? = dynamic> extends core::Object {
static method _#_#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#_#tearOff::T%>
return new self::Class1::_<self::Class1::_#_#tearOff::T%>();
static factory •<T extends core::Object? = dynamic>() → self::Class1<self::Class1::•::T%>
let Never #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression;
return new self::Class1::_<self::Class1::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#new#tearOff::T%>
return new self::Class1::_<self::Class1::_#new#tearOff::T%>();
}
@@ -54,7 +54,7 @@ class Class2<T extends core::num> extends core::Object {
static method _#_#tearOff<T extends core::num>() → self::Class2<self::Class2::_#_#tearOff::T>
return new self::Class2::_<self::Class2::_#_#tearOff::T>();
static factory •<T extends core::num>() → self::Class2<self::Class2::•::T>
let Never #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression;
return new self::Class2::_<self::Class2::•::T>();
static method _#new#tearOff<T extends core::num>() → self::Class2<self::Class2::_#new#tearOff::T>
return new self::Class2::_<self::Class2::_#new#tearOff::T>();
}
@@ -66,7 +66,7 @@ class Class3<T extends self::Class3::S% = dynamic, S extends core::Object? = dyn
static method _#_#tearOff<T extends self::Class3::_#_#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>
return new self::Class3::_<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>();
static factory •<T extends self::Class3::•::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::•::T%, self::Class3::•::S%>
let Never #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression;
return new self::Class3::_<self::Class3::•::T%, self::Class3::•::S%>();
static method _#new#tearOff<T extends self::Class3::_#new#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>
return new self::Class3::_<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>();
}
@@ -78,7 +78,7 @@ class Class4<T extends self::Class4<self::Class4::T> = self::Class4<dynamic>> ex
static method _#_#tearOff<T extends self::Class4<self::Class4::_#_#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#_#tearOff::T>
return new self::Class4::_<self::Class4::_#_#tearOff::T>();
static factory •<T extends self::Class4<self::Class4::•::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::•::T>
let Never #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression;
return new self::Class4::_<self::Class4::•::T>();
static method _#new#tearOff<T extends self::Class4<self::Class4::_#new#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#new#tearOff::T>
return new self::Class4::_<self::Class4::_#new#tearOff::T>();
}
@@ -90,7 +90,7 @@ class Class4int extends self::Class4<self::Class4int> {
static method _#_#tearOff() → self::Class4int
return new self::Class4int::_();
static factory •() → self::Class4int
let Never #redirecting_factory = self::Class4int::_ in invalid-expression;
return new self::Class4int::_();
static method _#new#tearOff() → self::Class4int
return new self::Class4int::_();
}
@@ -42,7 +42,7 @@ class Class1<T extends core::Object? = dynamic> extends core::Object {
static method _#_#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#_#tearOff::T%>
return new self::Class1::_<self::Class1::_#_#tearOff::T%>();
static factory •<T extends core::Object? = dynamic>() → self::Class1<self::Class1::•::T%>
let dynamic #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression;
return new self::Class1::_<self::Class1::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#new#tearOff::T%>
return new self::Class1::_<self::Class1::_#new#tearOff::T%>();
}
@@ -54,7 +54,7 @@ class Class2<T extends core::num> extends core::Object {
static method _#_#tearOff<T extends core::num>() → self::Class2<self::Class2::_#_#tearOff::T>
return new self::Class2::_<self::Class2::_#_#tearOff::T>();
static factory •<T extends core::num>() → self::Class2<self::Class2::•::T>
let dynamic #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression;
return new self::Class2::_<self::Class2::•::T>();
static method _#new#tearOff<T extends core::num>() → self::Class2<self::Class2::_#new#tearOff::T>
return new self::Class2::_<self::Class2::_#new#tearOff::T>();
}
@@ -66,7 +66,7 @@ class Class3<T extends self::Class3::S% = dynamic, S extends core::Object? = dyn
static method _#_#tearOff<T extends self::Class3::_#_#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>
return new self::Class3::_<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>();
static factory •<T extends self::Class3::•::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::•::T%, self::Class3::•::S%>
let dynamic #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression;
return new self::Class3::_<self::Class3::•::T%, self::Class3::•::S%>();
static method _#new#tearOff<T extends self::Class3::_#new#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>
return new self::Class3::_<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>();
}
@@ -78,7 +78,7 @@ class Class4<T extends self::Class4<self::Class4::T> = self::Class4<dynamic>> ex
static method _#_#tearOff<T extends self::Class4<self::Class4::_#_#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#_#tearOff::T>
return new self::Class4::_<self::Class4::_#_#tearOff::T>();
static factory •<T extends self::Class4<self::Class4::•::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::•::T>
let dynamic #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression;
return new self::Class4::_<self::Class4::•::T>();
static method _#new#tearOff<T extends self::Class4<self::Class4::_#new#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#new#tearOff::T>
return new self::Class4::_<self::Class4::_#new#tearOff::T>();
}
@@ -90,7 +90,7 @@ class Class4int extends self::Class4<self::Class4int> {
static method _#_#tearOff() → self::Class4int
return new self::Class4int::_();
static factory •() → self::Class4int
let dynamic #redirecting_factory = self::Class4int::_ in invalid-expression;
return new self::Class4int::_();
static method _#new#tearOff() → self::Class4int
return new self::Class4int::_();
}
@@ -9,7 +9,7 @@ class Class1<T extends core::Object? = dynamic> extends core::Object {
static method _#_#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#_#tearOff::T%>
return new self::Class1::_<self::Class1::_#_#tearOff::T%>();
static factory •<T extends core::Object? = dynamic>() → self::Class1<self::Class1::•::T%>
let dynamic #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression;
return new self::Class1::_<self::Class1::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#new#tearOff::T%>
return new self::Class1::_<self::Class1::_#new#tearOff::T%>();
}
@@ -20,7 +20,7 @@ class Class2<T extends core::num> extends core::Object {
static method _#_#tearOff<T extends core::num>() → self::Class2<self::Class2::_#_#tearOff::T>
return new self::Class2::_<self::Class2::_#_#tearOff::T>();
static factory •<T extends core::num>() → self::Class2<self::Class2::•::T>
let dynamic #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression;
return new self::Class2::_<self::Class2::•::T>();
static method _#new#tearOff<T extends core::num>() → self::Class2<self::Class2::_#new#tearOff::T>
return new self::Class2::_<self::Class2::_#new#tearOff::T>();
}
@@ -31,7 +31,7 @@ class Class3<T extends self::Class3::S% = dynamic, S extends core::Object? = dyn
static method _#_#tearOff<T extends self::Class3::_#_#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>
return new self::Class3::_<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>();
static factory •<T extends self::Class3::•::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::•::T%, self::Class3::•::S%>
let dynamic #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression;
return new self::Class3::_<self::Class3::•::T%, self::Class3::•::S%>();
static method _#new#tearOff<T extends self::Class3::_#new#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>
return new self::Class3::_<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>();
}
@@ -42,7 +42,7 @@ class Class4<T extends self::Class4<self::Class4::T> = self::Class4<dynamic>> ex
static method _#_#tearOff<T extends self::Class4<self::Class4::_#_#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#_#tearOff::T>
return new self::Class4::_<self::Class4::_#_#tearOff::T>();
static factory •<T extends self::Class4<self::Class4::•::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::•::T>
let dynamic #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression;
return new self::Class4::_<self::Class4::•::T>();
static method _#new#tearOff<T extends self::Class4<self::Class4::_#new#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#new#tearOff::T>
return new self::Class4::_<self::Class4::_#new#tearOff::T>();
}
@@ -53,7 +53,7 @@ class Class4int extends self::Class4<self::Class4int> {
static method _#_#tearOff() → self::Class4int
return new self::Class4int::_();
static factory •() → self::Class4int
let dynamic #redirecting_factory = self::Class4int::_ in invalid-expression;
return new self::Class4int::_();
static method _#new#tearOff() → self::Class4int
return new self::Class4int::_();
}
@@ -42,7 +42,7 @@ class Class1<T extends core::Object? = dynamic> extends core::Object {
static method _#_#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#_#tearOff::T%>
return new self::Class1::_<self::Class1::_#_#tearOff::T%>();
static factory •<T extends core::Object? = dynamic>() → self::Class1<self::Class1::•::T%>
let Never #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression;
return new self::Class1::_<self::Class1::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class1<self::Class1::_#new#tearOff::T%>
return new self::Class1::_<self::Class1::_#new#tearOff::T%>();
}
@@ -54,7 +54,7 @@ class Class2<T extends core::num> extends core::Object {
static method _#_#tearOff<T extends core::num>() → self::Class2<self::Class2::_#_#tearOff::T>
return new self::Class2::_<self::Class2::_#_#tearOff::T>();
static factory •<T extends core::num>() → self::Class2<self::Class2::•::T>
let Never #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression;
return new self::Class2::_<self::Class2::•::T>();
static method _#new#tearOff<T extends core::num>() → self::Class2<self::Class2::_#new#tearOff::T>
return new self::Class2::_<self::Class2::_#new#tearOff::T>();
}
@@ -66,7 +66,7 @@ class Class3<T extends self::Class3::S% = dynamic, S extends core::Object? = dyn
static method _#_#tearOff<T extends self::Class3::_#_#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>
return new self::Class3::_<self::Class3::_#_#tearOff::T%, self::Class3::_#_#tearOff::S%>();
static factory •<T extends self::Class3::•::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::•::T%, self::Class3::•::S%>
let Never #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression;
return new self::Class3::_<self::Class3::•::T%, self::Class3::•::S%>();
static method _#new#tearOff<T extends self::Class3::_#new#tearOff::S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>
return new self::Class3::_<self::Class3::_#new#tearOff::T%, self::Class3::_#new#tearOff::S%>();
}
@@ -78,7 +78,7 @@ class Class4<T extends self::Class4<self::Class4::T> = self::Class4<dynamic>> ex
static method _#_#tearOff<T extends self::Class4<self::Class4::_#_#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#_#tearOff::T>
return new self::Class4::_<self::Class4::_#_#tearOff::T>();
static factory •<T extends self::Class4<self::Class4::•::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::•::T>
let Never #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression;
return new self::Class4::_<self::Class4::•::T>();
static method _#new#tearOff<T extends self::Class4<self::Class4::_#new#tearOff::T> = self::Class4<dynamic>>() → self::Class4<self::Class4::_#new#tearOff::T>
return new self::Class4::_<self::Class4::_#new#tearOff::T>();
}
@@ -90,7 +90,7 @@ class Class4int extends self::Class4<self::Class4int> {
static method _#_#tearOff() → self::Class4int
return new self::Class4int::_();
static factory •() → self::Class4int
let Never #redirecting_factory = self::Class4int::_ in invalid-expression;
return new self::Class4int::_();
static method _#new#tearOff() → self::Class4int
return new self::Class4int::_();
}
@@ -17,7 +17,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#fact#tearOff::T%>
return self::A::fact<self::A::_#fact#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#redirect#tearOff::T%>
return new self::A::•<self::A::_#redirect#tearOff::T%>();
}
@@ -17,7 +17,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#fact#tearOff::T%>
return self::A::fact<self::A::_#fact#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#redirect#tearOff::T%>
return new self::A::•<self::A::_#redirect#tearOff::T%>();
}
@@ -115,4 +115,4 @@ Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_renam
Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:48:3 -> BoolConstant(true)
Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:50:3 -> BoolConstant(true)
Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:51:3 -> BoolConstant(true)
Extra constant evaluation: evaluated: 61, effectively constant: 10
Extra constant evaluation: evaluated: 59, effectively constant: 10
@@ -17,7 +17,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#fact#tearOff::T%>
return self::A::fact<self::A::_#fact#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#redirect#tearOff::T%>
return new self::A::•<self::A::_#redirect#tearOff::T%>();
}
@@ -16,7 +16,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#fact#tearOff::T%>
return self::A::fact<self::A::_#fact#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#redirect#tearOff::T%>
return new self::A::•<self::A::_#redirect#tearOff::T%>();
}
@@ -78,4 +78,4 @@ Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.d
Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:31:13 -> InstantiationConstant(A._#new#tearOff<int*>)
Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:32:13 -> InstantiationConstant(A._#new#tearOff<int*>)
Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:33:31 -> InstantiationConstant(A._#new#tearOff<int>)
Extra constant evaluation: evaluated: 32, effectively constant: 15
Extra constant evaluation: evaluated: 30, effectively constant: 15
@@ -17,7 +17,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#fact#tearOff::T%>
return self::A::fact<self::A::_#fact#tearOff::T%>();
static factory redirect<T extends core::Object? = dynamic>() → self::A<self::A::redirect::T%>
let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression;
return new self::A::•<self::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → self::A<self::A::_#redirect#tearOff::T%>
return new self::A::•<self::A::_#redirect#tearOff::T%>();
}
@@ -118,4 +118,4 @@ Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_renam
Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:48:3 -> BoolConstant(false)
Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:50:3 -> BoolConstant(true)
Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:51:3 -> BoolConstant(false)
Extra constant evaluation: evaluated: 61, effectively constant: 10
Extra constant evaluation: evaluated: 59, effectively constant: 10
@@ -24,10 +24,14 @@ class Class extends core::Object {
static method constructor() → self::Class
return new self::Class::_();
static factory a() → self::Class
let dynamic #redirecting_factory = "Class.nonexisting" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting'
factory Class.a() = Class.nonexisting;
^";
static method _#a#tearOff() → self::Class;
static factory b() → self::Class
let dynamic #redirecting_factory = "Class.constructor" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor'
factory Class.b() = Class.constructor;
^";
static method _#b#tearOff() → self::Class;
}
static method main() → dynamic {}
@@ -24,10 +24,14 @@ class Class extends core::Object {
static method constructor() → self::Class
return new self::Class::_();
static factory a() → self::Class
let core::String* #redirecting_factory = "Class.nonexisting" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting'
factory Class.a() = Class.nonexisting;
^";
static method _#a#tearOff() → self::Class;
static factory b() → self::Class
let core::String* #redirecting_factory = "Class.constructor" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor'
factory Class.b() = Class.constructor;
^";
static method _#b#tearOff() → self::Class;
}
static method main() → dynamic {}
@@ -24,10 +24,14 @@ class Class extends core::Object {
static method constructor() → self::Class
return new self::Class::_();
static factory a() → self::Class
let dynamic #redirecting_factory = "Class.nonexisting" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting'
factory Class.a() = Class.nonexisting;
^";
static method _#a#tearOff() → self::Class;
static factory b() → self::Class
let dynamic #redirecting_factory = "Class.constructor" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor'
factory Class.b() = Class.constructor;
^";
static method _#b#tearOff() → self::Class;
}
static method main() → dynamic {}
@@ -23,10 +23,14 @@ class Class extends core::Object {
static method constructor() → self::Class
;
static factory a() → self::Class
let dynamic #redirecting_factory = "Class.nonexisting" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting'
factory Class.a() = Class.nonexisting;
^";
static method _#a#tearOff() → self::Class;
static factory b() → self::Class
let dynamic #redirecting_factory = "Class.constructor" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor'
factory Class.b() = Class.constructor;
^";
static method _#b#tearOff() → self::Class;
}
static method main() → dynamic
@@ -24,10 +24,14 @@ class Class extends core::Object {
static method constructor() → self::Class
return new self::Class::_();
static factory a() → self::Class
let core::String* #redirecting_factory = "Class.nonexisting" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting'
factory Class.a() = Class.nonexisting;
^";
static method _#a#tearOff() → self::Class;
static factory b() → self::Class
let core::String* #redirecting_factory = "Class.constructor" in invalid-expression;
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor'
factory Class.b() = Class.constructor;
^";
static method _#b#tearOff() → self::Class;
}
static method main() → dynamic {}
@@ -53,7 +53,7 @@ class Class1 extends core::Object {
static method _#_#tearOff() → self::Class1
return new self::Class1::_();
static factory •() → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
static method _#new#tearOff() → self::Class1
return new self::Class1::_();
}
@@ -69,7 +69,7 @@ class Class2 extends core::Object {
static method _#_#tearOff() → self::Class2
return self::Class2::_();
static factory named() → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
static method _#named#tearOff() → self::Class2
return self::Class2::_();
}
@@ -82,7 +82,7 @@ class Class3 extends core::Object {
static method _#_#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
static factory •(core::int field) → self::Class3
let dynamic #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
static method _#new#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
}
@@ -95,7 +95,7 @@ class Class4 extends core::Object {
static method _#_#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
static factory •([core::int? field = #C1]) → self::Class4
let dynamic #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
static method _#new#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
}
@@ -109,7 +109,7 @@ class Class5 extends core::Object {
static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let dynamic #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
}
@@ -124,7 +124,7 @@ class Class6 extends core::Object {
static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let dynamic #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
}
@@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let dynamic #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
static method _#new#tearOff() → self::Class7b
return new self::Class7a::•();
}
@@ -152,7 +152,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::_#new#tearOff::T%>
return new self::Class8a::•<self::Class8b::_#new#tearOff::T%>();
}
@@ -53,7 +53,7 @@ class Class1 extends core::Object {
static method _#_#tearOff() → self::Class1
return new self::Class1::_();
static factory •() → self::Class1
let Never #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
static method _#new#tearOff() → self::Class1
return new self::Class1::_();
}
@@ -69,7 +69,7 @@ class Class2 extends core::Object {
static method _#_#tearOff() → self::Class2
return self::Class2::_();
static factory named() → self::Class2
let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
static method _#named#tearOff() → self::Class2
return self::Class2::_();
}
@@ -82,7 +82,7 @@ class Class3 extends core::Object {
static method _#_#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
static factory •(core::int field) → self::Class3
let Never #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
static method _#new#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
}
@@ -95,7 +95,7 @@ class Class4 extends core::Object {
static method _#_#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
static factory •([core::int? field = #C1]) → self::Class4
let Never #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
static method _#new#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
}
@@ -109,7 +109,7 @@ class Class5 extends core::Object {
static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let Never #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
}
@@ -124,7 +124,7 @@ class Class6 extends core::Object {
static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let Never #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
}
@@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let Never #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
static method _#new#tearOff() → self::Class7b
return new self::Class7a::•();
}
@@ -152,7 +152,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::_#new#tearOff::T%>
return new self::Class8a::•<self::Class8b::_#new#tearOff::T%>();
}
@@ -53,7 +53,7 @@ class Class1 extends core::Object {
static method _#_#tearOff() → self::Class1
return new self::Class1::_();
static factory •() → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
static method _#new#tearOff() → self::Class1
return new self::Class1::_();
}
@@ -69,7 +69,7 @@ class Class2 extends core::Object {
static method _#_#tearOff() → self::Class2
return self::Class2::_();
static factory named() → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
static method _#named#tearOff() → self::Class2
return self::Class2::_();
}
@@ -82,7 +82,7 @@ class Class3 extends core::Object {
static method _#_#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
static factory •(core::int field) → self::Class3
let dynamic #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
static method _#new#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
}
@@ -95,7 +95,7 @@ class Class4 extends core::Object {
static method _#_#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
static factory •([core::int? field = #C1]) → self::Class4
let dynamic #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
static method _#new#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
}
@@ -109,7 +109,7 @@ class Class5 extends core::Object {
static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let dynamic #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
}
@@ -124,7 +124,7 @@ class Class6 extends core::Object {
static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let dynamic #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
}
@@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let dynamic #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
static method _#new#tearOff() → self::Class7b
return new self::Class7a::•();
}
@@ -152,7 +152,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::_#new#tearOff::T%>
return new self::Class8a::•<self::Class8b::_#new#tearOff::T%>();
}
@@ -9,7 +9,7 @@ class Class1 extends core::Object {
static method _#_#tearOff() → self::Class1
return new self::Class1::_();
static factory •() → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
static method _#new#tearOff() → self::Class1
return new self::Class1::_();
}
@@ -24,7 +24,7 @@ class Class2 extends core::Object {
static method _#_#tearOff() → self::Class2
return self::Class2::_();
static factory named() → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
static method _#named#tearOff() → self::Class2
return self::Class2::_();
}
@@ -36,7 +36,7 @@ class Class3 extends core::Object {
static method _#_#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
static factory •(core::int field) → self::Class3
let dynamic #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
static method _#new#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
}
@@ -48,7 +48,7 @@ class Class4 extends core::Object {
static method _#_#tearOff([core::int? field]) → self::Class4
return new self::Class4::_(field);
static factory •([core::int? field]) → self::Class4
let dynamic #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
static method _#new#tearOff([core::int? field]) → self::Class4
return new self::Class4::_(field);
}
@@ -61,7 +61,7 @@ class Class5 extends core::Object {
static method _#_#tearOff(core::int field1, [core::int? field2]) → self::Class5
return new self::Class5::_(field1, field2);
static factory •(core::int field1, [core::int? field2]) → self::Class5
let dynamic #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
static method _#new#tearOff(core::int field1, [core::int? field2]) → self::Class5
return new self::Class5::_(field1, field2);
}
@@ -75,7 +75,7 @@ class Class6 extends core::Object {
static method _#_#tearOff(core::int field1, {core::int? field2, required core::int field3}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
static factory •(core::int field1, {core::int? field2, required core::int field3}) → self::Class6
let dynamic #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
static method _#new#tearOff(core::int field1, {core::int? field2, required core::int field3}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
}
@@ -88,7 +88,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let dynamic #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
static method _#new#tearOff() → self::Class7b
return new self::Class7a::•();
}
@@ -101,7 +101,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::_#new#tearOff::T%>
return new self::Class8a::•<self::Class8b::_#new#tearOff::T%>();
}
@@ -53,7 +53,7 @@ class Class1 extends core::Object {
static method _#_#tearOff() → self::Class1
return new self::Class1::_();
static factory •() → self::Class1
let Never #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
static method _#new#tearOff() → self::Class1
return new self::Class1::_();
}
@@ -69,7 +69,7 @@ class Class2 extends core::Object {
static method _#_#tearOff() → self::Class2
return self::Class2::_();
static factory named() → self::Class2
let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
static method _#named#tearOff() → self::Class2
return self::Class2::_();
}
@@ -82,7 +82,7 @@ class Class3 extends core::Object {
static method _#_#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
static factory •(core::int field) → self::Class3
let Never #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
static method _#new#tearOff(core::int field) → self::Class3
return new self::Class3::_(field);
}
@@ -95,7 +95,7 @@ class Class4 extends core::Object {
static method _#_#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
static factory •([core::int? field = #C1]) → self::Class4
let Never #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
static method _#new#tearOff([core::int? field = #C1]) → self::Class4
return new self::Class4::_(field);
}
@@ -109,7 +109,7 @@ class Class5 extends core::Object {
static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let Never #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5
return new self::Class5::_(field1, field2);
}
@@ -124,7 +124,7 @@ class Class6 extends core::Object {
static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let Never #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
return new self::Class6::_(field1, field2: field2, field3: field3);
}
@@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let Never #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
static method _#new#tearOff() → self::Class7b
return new self::Class7a::•();
}
@@ -152,7 +152,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::_#new#tearOff::T%>
return new self::Class8a::•<self::Class8b::_#new#tearOff::T%>();
}
@@ -24,7 +24,7 @@ class Class1 extends core::Object {
static method _#_#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
static factory •([core::int field = #C2]) → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_(field);
static method _#new#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
}
@@ -37,7 +37,7 @@ class Class2 extends core::Object {
static method _#_#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
static factory •({core::int field = #C2}) → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return new self::Class2::_(field: field);
static method _#new#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
}
@@ -24,7 +24,7 @@ class Class1 extends core::Object {
static method _#_#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
static factory •([core::int field = #C2]) → self::Class1
let Never #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_(field);
static method _#new#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
}
@@ -37,7 +37,7 @@ class Class2 extends core::Object {
static method _#_#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
static factory •({core::int field = #C2}) → self::Class2
let Never #redirecting_factory = self::Class2::_ in invalid-expression;
return new self::Class2::_(field: field);
static method _#new#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
}
@@ -24,7 +24,7 @@ class Class1 extends core::Object {
static method _#_#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
static factory •([core::int field = #C2]) → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_(field);
static method _#new#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
}
@@ -37,7 +37,7 @@ class Class2 extends core::Object {
static method _#_#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
static factory •({core::int field = #C2}) → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return new self::Class2::_(field: field);
static method _#new#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
}
@@ -10,7 +10,7 @@ class Class1 extends core::Object {
static method _#_#tearOff([core::int field]) → self::Class1
return new self::Class1::_(field);
static factory •([core::int field]) → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_(field);
static method _#new#tearOff([core::int field]) → self::Class1
return new self::Class1::_(field);
}
@@ -22,7 +22,7 @@ class Class2 extends core::Object {
static method _#_#tearOff({core::int field}) → self::Class2
return new self::Class2::_(field: field);
static factory •({core::int field}) → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return new self::Class2::_(field: field);
static method _#new#tearOff({core::int field}) → self::Class2
return new self::Class2::_(field: field);
}
@@ -24,7 +24,7 @@ class Class1 extends core::Object {
static method _#_#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
static factory •([core::int field = #C2]) → self::Class1
let Never #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_(field);
static method _#new#tearOff([core::int field = #C1]) → self::Class1
return new self::Class1::_(field);
}
@@ -37,7 +37,7 @@ class Class2 extends core::Object {
static method _#_#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
static factory •({core::int field = #C2}) → self::Class2
let Never #redirecting_factory = self::Class2::_ in invalid-expression;
return new self::Class2::_(field: field);
static method _#new#tearOff({core::int field = #C1}) → self::Class2
return new self::Class2::_(field: field);
}
@@ -53,37 +53,37 @@ class Class1 extends core::Object {
static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1, field2);
static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1);
static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1
return new self::Class1::positional(field1);
static factory redirectPositionalFewer2() → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional();
static method _#redirectPositionalFewer2#tearOff() → self::Class1
return new self::Class1::positional();
static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1, field2: field2);
static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2, field1: field1);
static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1);
static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2);
static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field2: field2);
static factory redirectNamedFewer3() → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named();
static method _#redirectNamedFewer3#tearOff() → self::Class1
return new self::Class1::named();
}
@@ -53,37 +53,37 @@ class Class1 extends core::Object {
static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1, field2);
static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1);
static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1
return new self::Class1::positional(field1);
static factory redirectPositionalFewer2() → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional();
static method _#redirectPositionalFewer2#tearOff() → self::Class1
return new self::Class1::positional();
static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1, field2: field2);
static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2, field1: field1);
static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1);
static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2);
static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field2: field2);
static factory redirectNamedFewer3() → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named();
static method _#redirectNamedFewer3#tearOff() → self::Class1
return new self::Class1::named();
}
@@ -53,37 +53,37 @@ class Class1 extends core::Object {
static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1, field2);
static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1);
static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1
return new self::Class1::positional(field1);
static factory redirectPositionalFewer2() → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional();
static method _#redirectPositionalFewer2#tearOff() → self::Class1
return new self::Class1::positional();
static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1, field2: field2);
static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2, field1: field1);
static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1);
static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2);
static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field2: field2);
static factory redirectNamedFewer3() → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named();
static method _#redirectNamedFewer3#tearOff() → self::Class1
return new self::Class1::named();
}
@@ -13,37 +13,37 @@ class Class1 extends core::Object {
static method _#positional#tearOff([core::int field1, core::int field2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1, core::int field2]) → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1, field2);
static method _#redirectPositionalSame#tearOff([core::int field1, core::int field2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1]) → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1);
static method _#redirectPositionalFewer1#tearOff([core::int field1]) → self::Class1
return new self::Class1::positional(field1);
static factory redirectPositionalFewer2() → self::Class1
let dynamic #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional();
static method _#redirectPositionalFewer2#tearOff() → self::Class1
return new self::Class1::positional();
static method _#named#tearOff({core::int field1, core::int field2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1, core::int field2}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1, field2: field2);
static method _#redirectNamedSame#tearOff({core::int field1, core::int field2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2, core::int field1}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2, field1: field1);
static method _#redirectNamedReorder#tearOff({core::int field2, core::int field1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1);
static method _#redirectNamedFewer1#tearOff({core::int field1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2}) → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2);
static method _#redirectNamedFewer2#tearOff({core::int field2}) → self::Class1
return new self::Class1::named(field2: field2);
static factory redirectNamedFewer3() → self::Class1
let dynamic #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named();
static method _#redirectNamedFewer3#tearOff() → self::Class1
return new self::Class1::named();
}
@@ -53,37 +53,37 @@ class Class1 extends core::Object {
static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1, field2);
static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional(field1);
static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1
return new self::Class1::positional(field1);
static factory redirectPositionalFewer2() → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
return new self::Class1::positional();
static method _#redirectPositionalFewer2#tearOff() → self::Class1
return new self::Class1::positional();
static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1, field2: field2);
static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2, field1: field1);
static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field1: field1);
static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named(field2: field2);
static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field2: field2);
static factory redirectNamedFewer3() → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
return new self::Class1::named();
static method _#redirectNamedFewer3#tearOff() → self::Class1
return new self::Class1::named();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A<mai::A::_#fact#tearOff::T%>
return mai::A::fact<mai::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → mai::A<mai::A::redirect::T%>
let dynamic #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::A::•<mai::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::A<mai::A::_#redirect#tearOff::T%>
return new mai::A::•<mai::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A<mai::A::_#fact#tearOff::T%>
return mai::A::fact<mai::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → mai::A<mai::A::redirect::T%>
let Never #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::A::•<mai::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::A<mai::A::_#redirect#tearOff::T%>
return new mai::A::•<mai::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A<mai::A::_#fact#tearOff::T%>
return mai::A::fact<mai::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → mai::A<mai::A::redirect::T%>
let dynamic #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::A::•<mai::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::A<mai::A::_#redirect#tearOff::T%>
return new mai::A::•<mai::A::_#redirect#tearOff::T%>();
}
@@ -48,7 +48,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(mai::A::_#fact#tearOff::T% a, {core::int? b, core::int c}) → mai::A<mai::A::_#fact#tearOff::T%>
return mai::A::fact<mai::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → mai::A<mai::A::redirect::T%>
let dynamic #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::A::•<mai::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::A<mai::A::_#redirect#tearOff::T%>
return new mai::A::•<mai::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A<mai::A::_#fact#tearOff::T%>
return mai::A::fact<mai::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → mai::A<mai::A::redirect::T%>
let Never #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression;
return new mai::A::•<mai::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → mai::A<mai::A::_#redirect#tearOff::T%>
return new mai::A::•<mai::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A<typ::A::_#fact#tearOff::T%>
return typ::A::fact<typ::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → typ::A<typ::A::redirect::T%>
let dynamic #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression;
return new typ::A::•<typ::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → typ::A<typ::A::_#redirect#tearOff::T%>
return new typ::A::•<typ::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A<typ::A::_#fact#tearOff::T%>
return typ::A::fact<typ::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → typ::A<typ::A::redirect::T%>
let Never #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression;
return new typ::A::•<typ::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → typ::A<typ::A::_#redirect#tearOff::T%>
return new typ::A::•<typ::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A<typ::A::_#fact#tearOff::T%>
return typ::A::fact<typ::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → typ::A<typ::A::redirect::T%>
let dynamic #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression;
return new typ::A::•<typ::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → typ::A<typ::A::_#redirect#tearOff::T%>
return new typ::A::•<typ::A::_#redirect#tearOff::T%>();
}
@@ -48,7 +48,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(typ::A::_#fact#tearOff::T% a, {core::int? b, core::int c}) → typ::A<typ::A::_#fact#tearOff::T%>
return typ::A::fact<typ::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → typ::A<typ::A::redirect::T%>
let dynamic #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression;
return new typ::A::•<typ::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → typ::A<typ::A::_#redirect#tearOff::T%>
return new typ::A::•<typ::A::_#redirect#tearOff::T%>();
}
@@ -100,7 +100,7 @@ class A<T extends core::Object? = dynamic> extends core::Object {
static method _#fact#tearOff<T extends core::Object? = dynamic>(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A<typ::A::_#fact#tearOff::T%>
return typ::A::fact<typ::A::_#fact#tearOff::T%>(a, b: b, c: c);
static factory redirect<T extends core::Object? = dynamic>() → typ::A<typ::A::redirect::T%>
let Never #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression;
return new typ::A::•<typ::A::redirect::T%>();
static method _#redirect#tearOff<T extends core::Object? = dynamic>() → typ::A<typ::A::_#redirect#tearOff::T%>
return new typ::A::•<typ::A::_#redirect#tearOff::T%>();
}
@@ -15,11 +15,11 @@ class A extends core::Object {
: super core::Object::•()
;
static factory redirectingFactory() → self::A
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let dynamic #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
static factory redirectingTwice() → self::A
let dynamic #redirecting_factory = self::A::redirectingFactory in invalid-expression;
return self::A::redirectingFactory();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -15,11 +15,11 @@ class A extends core::Object {
: super core::Object::•()
;
static factory redirectingFactory() → self::A
let Never #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let Never #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
static factory redirectingTwice() → self::A
let () → self::A #redirecting_factory = self::A::redirectingFactory in invalid-expression;
return self::A::redirectingFactory();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -15,11 +15,11 @@ class A extends core::Object {
: super core::Object::•()
;
static factory redirectingFactory() → self::A
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let dynamic #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
static factory redirectingTwice() → self::A
let dynamic #redirecting_factory = self::A::redirectingFactory in invalid-expression;
return self::A::redirectingFactory();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -7,11 +7,11 @@ class A extends core::Object {
constructor •() → self::A
;
static factory redirectingFactory() → self::A
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let dynamic #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
static factory redirectingTwice() → self::A
let dynamic #redirecting_factory = self::A::redirectingFactory in invalid-expression;
return self::A::redirectingFactory();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -15,11 +15,11 @@ class A extends core::Object {
: super core::Object::•()
;
static factory redirectingFactory() → self::A
let Never #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let Never #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
static factory redirectingTwice() → self::A
let () → self::A #redirecting_factory = self::A::redirectingFactory in invalid-expression;
return self::A::redirectingFactory();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -51,7 +51,7 @@ class Class1 extends core::Object {
: super core::Object::•()
;
static factory •() → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
}
class Class2 extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class2::named]/*isLegacy*/;
@@ -61,7 +61,7 @@ class Class2 extends core::Object {
static factory _() → self::Class2
return new self::Class2::__();
static factory named() → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
}
class Class3 extends core::Object {
final field core::int field;
@@ -70,7 +70,7 @@ class Class3 extends core::Object {
: self::Class3::field = field, super core::Object::•()
;
static factory •(core::int field) → self::Class3
let dynamic #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
}
class Class4 extends core::Object {
final field core::int? field;
@@ -79,7 +79,7 @@ class Class4 extends core::Object {
: self::Class4::field = field, super core::Object::•()
;
static factory •([core::int? field = #C1]) → self::Class4
let dynamic #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
}
class Class5 extends core::Object {
final field core::int field1;
@@ -89,7 +89,7 @@ class Class5 extends core::Object {
: self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•()
;
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let dynamic #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
}
class Class6 extends core::Object {
final field core::int field1;
@@ -100,7 +100,7 @@ class Class6 extends core::Object {
: self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•()
;
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let dynamic #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
}
class Class7a extends core::Object implements self::Class7b {
constructor •() → self::Class7a
@@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let dynamic #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
}
class Class8a<T extends core::Object? = dynamic> extends core::Object implements self::Class8b<self::Class8a::T%> {
constructor •() → self::Class8a<self::Class8a::T%>
@@ -120,7 +120,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
}
static final field core::bool inSoundMode = !(<core::int?>[] is{ForNonNullableByDefault} core::List<core::int>);
static method main() → dynamic {
@@ -51,7 +51,7 @@ class Class1 extends core::Object {
: super core::Object::•()
;
static factory •() → self::Class1
let Never #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
}
class Class2 extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class2::named]/*isLegacy*/;
@@ -61,7 +61,7 @@ class Class2 extends core::Object {
static factory _() → self::Class2
return new self::Class2::__();
static factory named() → self::Class2
let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
}
class Class3 extends core::Object {
final field core::int field;
@@ -70,7 +70,7 @@ class Class3 extends core::Object {
: self::Class3::field = field, super core::Object::•()
;
static factory •(core::int field) → self::Class3
let Never #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
}
class Class4 extends core::Object {
final field core::int? field;
@@ -79,7 +79,7 @@ class Class4 extends core::Object {
: self::Class4::field = field, super core::Object::•()
;
static factory •([core::int? field = #C1]) → self::Class4
let Never #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
}
class Class5 extends core::Object {
final field core::int field1;
@@ -89,7 +89,7 @@ class Class5 extends core::Object {
: self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•()
;
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let Never #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
}
class Class6 extends core::Object {
final field core::int field1;
@@ -100,7 +100,7 @@ class Class6 extends core::Object {
: self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•()
;
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let Never #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
}
class Class7a extends core::Object implements self::Class7b {
constructor •() → self::Class7a
@@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let Never #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
}
class Class8a<T extends core::Object? = dynamic> extends core::Object implements self::Class8b<self::Class8a::T%> {
constructor •() → self::Class8a<self::Class8a::T%>
@@ -120,7 +120,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
}
static final field core::bool inSoundMode = !(core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>);
static method main() → dynamic {
@@ -51,7 +51,7 @@ class Class1 extends core::Object {
: super core::Object::•()
;
static factory •() → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
}
class Class2 extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class2::named]/*isLegacy*/;
@@ -61,7 +61,7 @@ class Class2 extends core::Object {
static factory _() → self::Class2
return new self::Class2::__();
static factory named() → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
}
class Class3 extends core::Object {
final field core::int field;
@@ -70,7 +70,7 @@ class Class3 extends core::Object {
: self::Class3::field = field, super core::Object::•()
;
static factory •(core::int field) → self::Class3
let dynamic #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
}
class Class4 extends core::Object {
final field core::int? field;
@@ -79,7 +79,7 @@ class Class4 extends core::Object {
: self::Class4::field = field, super core::Object::•()
;
static factory •([core::int? field = #C1]) → self::Class4
let dynamic #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
}
class Class5 extends core::Object {
final field core::int field1;
@@ -89,7 +89,7 @@ class Class5 extends core::Object {
: self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•()
;
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let dynamic #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
}
class Class6 extends core::Object {
final field core::int field1;
@@ -100,7 +100,7 @@ class Class6 extends core::Object {
: self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•()
;
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let dynamic #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
}
class Class7a extends core::Object implements self::Class7b {
constructor •() → self::Class7a
@@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let dynamic #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
}
class Class8a<T extends core::Object? = dynamic> extends core::Object implements self::Class8b<self::Class8a::T%> {
constructor •() → self::Class8a<self::Class8a::T%>
@@ -120,7 +120,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
}
static final field core::bool inSoundMode = !(<core::int?>[] is{ForNonNullableByDefault} core::List<core::int>);
static method main() → dynamic {
@@ -7,7 +7,7 @@ class Class1 extends core::Object {
constructor _() → self::Class1
;
static factory •() → self::Class1
let dynamic #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
}
class Class2 extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class2::named]/*isLegacy*/;
@@ -16,7 +16,7 @@ class Class2 extends core::Object {
static factory _() → self::Class2
;
static factory named() → self::Class2
let dynamic #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
}
class Class3 extends core::Object {
final field core::int field;
@@ -24,7 +24,7 @@ class Class3 extends core::Object {
constructor _(core::int field) → self::Class3
;
static factory •(core::int field) → self::Class3
let dynamic #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
}
class Class4 extends core::Object {
final field core::int? field;
@@ -32,7 +32,7 @@ class Class4 extends core::Object {
constructor _([core::int? field]) → self::Class4
;
static factory •([core::int? field]) → self::Class4
let dynamic #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
}
class Class5 extends core::Object {
final field core::int field1;
@@ -41,7 +41,7 @@ class Class5 extends core::Object {
constructor _(core::int field1, [core::int? field2]) → self::Class5
;
static factory •(core::int field1, [core::int? field2]) → self::Class5
let dynamic #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
}
class Class6 extends core::Object {
final field core::int field1;
@@ -51,7 +51,7 @@ class Class6 extends core::Object {
constructor _(core::int field1, {core::int? field2, required core::int field3}) → self::Class6
;
static factory •(core::int field1, {core::int? field2, required core::int field3}) → self::Class6
let dynamic #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
}
class Class7a extends core::Object implements self::Class7b {
constructor •() → self::Class7a
@@ -60,7 +60,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let dynamic #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
}
class Class8a<T extends core::Object? = dynamic> extends core::Object implements self::Class8b<self::Class8a::T%> {
constructor •() → self::Class8a<self::Class8a::T%>
@@ -69,7 +69,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
}
static final field core::bool inSoundMode;
static method main() → dynamic
@@ -51,7 +51,7 @@ class Class1 extends core::Object {
: super core::Object::•()
;
static factory •() → self::Class1
let Never #redirecting_factory = self::Class1::_ in invalid-expression;
return new self::Class1::_();
}
class Class2 extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class2::named]/*isLegacy*/;
@@ -61,7 +61,7 @@ class Class2 extends core::Object {
static factory _() → self::Class2
return new self::Class2::__();
static factory named() → self::Class2
let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression;
return self::Class2::_();
}
class Class3 extends core::Object {
final field core::int field;
@@ -70,7 +70,7 @@ class Class3 extends core::Object {
: self::Class3::field = field, super core::Object::•()
;
static factory •(core::int field) → self::Class3
let Never #redirecting_factory = self::Class3::_ in invalid-expression;
return new self::Class3::_(field);
}
class Class4 extends core::Object {
final field core::int? field;
@@ -79,7 +79,7 @@ class Class4 extends core::Object {
: self::Class4::field = field, super core::Object::•()
;
static factory •([core::int? field = #C1]) → self::Class4
let Never #redirecting_factory = self::Class4::_ in invalid-expression;
return new self::Class4::_(field);
}
class Class5 extends core::Object {
final field core::int field1;
@@ -89,7 +89,7 @@ class Class5 extends core::Object {
: self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•()
;
static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5
let Never #redirecting_factory = self::Class5::_ in invalid-expression;
return new self::Class5::_(field1, field2);
}
class Class6 extends core::Object {
final field core::int field1;
@@ -100,7 +100,7 @@ class Class6 extends core::Object {
: self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•()
;
static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6
let Never #redirecting_factory = self::Class6::_ in invalid-expression;
return new self::Class6::_(field1, field2: field2, field3: field3);
}
class Class7a extends core::Object implements self::Class7b {
constructor •() → self::Class7a
@@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b {
class Class7b extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class7b::•]/*isLegacy*/;
static factory •() → self::Class7b
let Never #redirecting_factory = self::Class7a::• in invalid-expression;
return new self::Class7a::•();
}
class Class8a<T extends core::Object? = dynamic> extends core::Object implements self::Class8b<self::Class8a::T%> {
constructor •() → self::Class8a<self::Class8a::T%>
@@ -120,7 +120,7 @@ class Class8a<T extends core::Object? = dynamic> extends core::Object implements
class Class8b<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::Class8b::•]/*isLegacy*/;
static factory •<T extends core::Object? = dynamic>() → self::Class8b<self::Class8b::•::T%>
let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression;
return new self::Class8a::•<self::Class8b::•::T%>();
}
static final field core::bool inSoundMode = !(core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>);
static method main() → dynamic {
@@ -11,9 +11,9 @@ class A extends core::Object {
: this self::A::•()
;
static factory redirectingFactory() → self::A
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let dynamic #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -11,9 +11,9 @@ class A extends core::Object {
: this self::A::•()
;
static factory redirectingFactory() → self::A
let Never #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let Never #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -11,9 +11,9 @@ class A extends core::Object {
: this self::A::•()
;
static factory redirectingFactory() → self::A
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let dynamic #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -9,9 +9,9 @@ class A extends core::Object {
constructor redirecting() → self::A
;
static factory redirectingFactory() → self::A
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let dynamic #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -11,9 +11,9 @@ class A extends core::Object {
: this self::A::•()
;
static factory redirectingFactory() → self::A
let Never #redirecting_factory = self::A::• in invalid-expression;
return new self::A::•();
static factory redirectingFactoryChild() → self::A
let Never #redirecting_factory = self::B::• in invalid-expression;
return new self::B::•();
}
class B extends self::A {
synthetic constructor •() → self::B
@@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: Factory redirects to class 'A', which is abstract and can't be instantiated.
// factory B() = A;
// ^
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
// - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
// - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
@@ -12,10 +16,6 @@ library /*isNonNullableByDefault*/;
// new A();
// ^
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:11: Error: Factory redirects to class 'A', which is abstract and can't be instantiated.
// factory B() = A;
// ^
//
import self as self;
import "dart:core" as core;
@@ -27,10 +27,18 @@ abstract class A extends core::Object {
abstract class B extends core::Object implements self::A {
static final field dynamic _redirecting# = <dynamic>[self::B::•]/*isLegacy*/;
static factory •() → self::B
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
- 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
- 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
factory B() = A;
^";
}
static method test() → dynamic {
throw new core::AbstractClassInstantiationError::•("A");
throw new core::AbstractClassInstantiationError::•("A");
invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
- 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
- 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
factory B() = A;
^";
}
static method main() → dynamic {}
@@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: Factory redirects to class 'A', which is abstract and can't be instantiated.
// factory B() = A;
// ^
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
// - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
// - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
@@ -18,7 +22,11 @@ abstract class A extends core::Object {
abstract class B extends core::Object implements self::A {
static final field dynamic _redirecting# = <dynamic>[self::B::•]/*isLegacy*/;
static factory •() → self::B
let dynamic #redirecting_factory = self::A::• in invalid-expression;
return invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
- 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
- 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
factory B() = A;
^";
}
static method test() → dynamic
;
@@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: Factory redirects to class 'A', which is abstract and can't be instantiated.
// factory B() = A;
// ^
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
// - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
// - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
@@ -12,10 +16,6 @@ library /*isNonNullableByDefault*/;
// new A();
// ^
//
// pkg/front_end/testcases/general/abstract_instantiation.dart:8:11: Error: Factory redirects to class 'A', which is abstract and can't be instantiated.
// factory B() = A;
// ^
//
import self as self;
import "dart:core" as core;
@@ -27,10 +27,18 @@ abstract class A extends core::Object {
abstract class B extends core::Object implements self::A {
static final field dynamic _redirecting# = <dynamic>[self::B::•]/*isLegacy*/;
static factory •() → self::B
let Never #redirecting_factory = self::A::• in invalid-expression;
return invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
- 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
- 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
factory B() = A;
^";
}
static method test() → dynamic {
throw new core::AbstractClassInstantiationError::•("A");
throw new core::AbstractClassInstantiationError::•("A");
invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'.
- 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
- 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'.
factory B() = A;
^";
}
static method main() → dynamic {}
@@ -38,7 +38,7 @@ class Class extends core::Object {
return throw "unsupported";
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C3}) → test::Class
let dynamic #redirecting_factory = test::Class::_internal in invalid-expression;
return new test::Class::_internal(defaultValue: defaultValue);
}
constants {
@@ -26,7 +26,7 @@ class Class extends core::Object {
external static factory constFact({core::bool defaultValue = true}) → self2::Class;
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = true}) → self2::Class
let dynamic #redirecting_factory = self2::Class::_internal in invalid-expression;
return new self2::Class::_internal(defaultValue: defaultValue);
}
@@ -38,7 +38,7 @@ class Class extends core::Object {
return throw "unsupported";
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C3}) → test::Class
let dynamic #redirecting_factory = test::Class::_internal in invalid-expression;
return new test::Class::_internal(defaultValue: defaultValue);
}
constants {
@@ -78,7 +78,7 @@ class C extends core::Object {
static factory fact() → self::C*
return null;
static factory fact2() → self::C*
let dynamic #redirecting_factory = self::D::• in invalid-expression;
return new self::D::•();
static method staticFunction(core::int* i) → void {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -13,7 +13,7 @@ class C extends core::Object {
static factory fact() → self::C*
;
static factory fact2() → self::C*
let dynamic #redirecting_factory = self::D::• in invalid-expression;
return new self::D::•();
static method staticFunction(core::int* i) → void
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -78,7 +78,7 @@ class C extends core::Object {
static factory fact() → self::C*
return null;
static factory fact2() → self::C*
let Never #redirecting_factory = self::D::• in invalid-expression;
return new self::D::•();
static method staticFunction(core::int* i) → void {}
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -5,7 +5,7 @@ import "dart:core" as core;
class A<T extends core::Object* = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::A::•];
static factory •<T extends core::Object* = dynamic>() → self::A<self::A::•::T*>*
let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in invalid-expression;
return new self::B::•<self::A::•::T*>();
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -5,7 +5,7 @@ import "dart:core" as core;
class A<T extends core::Object* = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::A::•];
static factory •<T extends core::Object* = dynamic>() → self::A<self::A::•::T*>*
let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in invalid-expression;
return new self::B::•<self::A::•::T*>();
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -5,7 +5,7 @@ import "dart:core" as core;
class A<T extends core::Object* = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::A::•];
static factory •<T extends core::Object* = dynamic>() → self::A<self::A::•::T*>*
let Never #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in invalid-expression;
return new self::B::•<self::A::•::T*>();
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -23,7 +23,7 @@ abstract class Foo extends core::Object /*hasConstConstructor*/ {
: super core::Object::•()
;
static factory bar() → foo::Foo
let dynamic #redirecting_factory = bar::Bar::• in let dynamic #typeArg0 = null in invalid-expression;
return new bar::Bar::•<dynamic>();
}
library /*isNonNullableByDefault*/;
@@ -25,7 +25,7 @@ abstract class Foo extends core::Object /*hasConstConstructor*/ {
: super core::Object::•()
;
static factory bar() → foo::Foo
let dynamic #redirecting_factory = bar::Bar::• in let dynamic #typeArg0 = null in invalid-expression;
return new bar::Bar::•<dynamic>();
}
library /*isNonNullableByDefault*/;
@@ -44,4 +44,4 @@ class Bar<T extends core::Object? = dynamic> extends foo::Foo /*hasConstConstruc
Extra constant evaluation status:
Evaluated: SetLiteral @ org-dartlang-testcase:///main.dart:7:27 -> InstanceConstant(const _UnmodifiableSet<Foo*>{_UnmodifiableSet._map: const _ImmutableMap<Foo*, Null>{_ImmutableMap._kvPairs: const <dynamic>[const Bar<dynamic>{}, null]}})
Extra constant evaluation: evaluated: 6, effectively constant: 1
Extra constant evaluation: evaluated: 4, effectively constant: 1
@@ -23,7 +23,7 @@ abstract class Foo extends core::Object /*hasConstConstructor*/ {
: super core::Object::•()
;
static factory bar() → foo::Foo
let Never #redirecting_factory = bar::Bar::• in let Null #typeArg0 = null in invalid-expression;
return new bar::Bar::•<dynamic>();
}
library /*isNonNullableByDefault*/;
@@ -18,7 +18,7 @@ abstract class A extends core::Object /*hasConstConstructor*/ {
: super core::Object::•()
;
static factory foo() → self::A
let dynamic #redirecting_factory = self::B::• in let dynamic #typeArg0 = null in invalid-expression;
return new self::B::•<dynamic>();
}
static method main() → dynamic {}
@@ -18,7 +18,7 @@ abstract class A extends core::Object /*hasConstConstructor*/ {
: super core::Object::•()
;
static factory foo() → self::A
let dynamic #redirecting_factory = self::B::• in let dynamic #typeArg0 = null in invalid-expression;
return new self::B::•<dynamic>();
}
static method main() → dynamic
;
@@ -26,4 +26,4 @@ static method main() → dynamic
Extra constant evaluation status:
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue45003_2.dart:6:30 -> InstanceConstant(const B<dynamic>{})
Extra constant evaluation: evaluated: 6, effectively constant: 1
Extra constant evaluation: evaluated: 4, effectively constant: 1
@@ -18,7 +18,7 @@ abstract class A extends core::Object /*hasConstConstructor*/ {
: super core::Object::•()
;
static factory foo() → self::A
let Never #redirecting_factory = self::B::• in let Null #typeArg0 = null in invalid-expression;
return new self::B::•<dynamic>();
}
static method main() → dynamic {}
@@ -34,7 +34,7 @@ class Array<T extends core::Object* = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self2::Array::•];
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object* = dynamic>(core::int* foo) → self2::Array<self2::Array::•::T*>*
let dynamic #redirecting_factory = self2::_ArraySize::• in let self2::Array::•::T* #typeArg0 = null in invalid-expression;
return new self2::_ArraySize::•<self2::Array::•::T*>(foo);
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -35,7 +35,7 @@ class Array<T extends core::Object* = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self2::Array::•];
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object* = dynamic>(core::int* foo) → self2::Array<self2::Array::•::T*>*
let dynamic #redirecting_factory = self2::_ArraySize::• in let self2::Array::•::T* #typeArg0 = null in invalid-expression;
return new self2::_ArraySize::•<self2::Array::•::T*>(foo);
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -53,4 +53,4 @@ Extra constant evaluation status:
Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:10:1 -> InstanceConstant(const _Patch{})
Evaluated: ConstructorInvocation @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const pragma{pragma.name: "vm:entry-point", pragma.options: null})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:14:17 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 9, effectively constant: 3
Extra constant evaluation: evaluated: 8, effectively constant: 3
@@ -34,7 +34,7 @@ class Array<T extends core::Object* = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self2::Array::•];
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object* = dynamic>(core::int* foo) → self2::Array<self2::Array::•::T*>*
let dynamic #redirecting_factory = self2::_ArraySize::• in let self2::Array::•::T* #typeArg0 = null in invalid-expression;
return new self2::_ArraySize::•<self2::Array::•::T*>(foo);
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf

Some files were not shown because too many files have changed in this diff Show More