[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:
committed by
commit-bot@chromium.org
parent
ada4278fd5
commit
300a2ea952
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+1
-1
@@ -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 {}
|
||||
|
||||
+1
-1
@@ -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 {}
|
||||
|
||||
+1
-1
@@ -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 {}
|
||||
|
||||
+1
-1
@@ -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
|
||||
;
|
||||
|
||||
+1
-1
@@ -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 {}
|
||||
|
||||
+2
-2
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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%>();
|
||||
}
|
||||
|
||||
+5
-5
@@ -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::_();
|
||||
}
|
||||
|
||||
+5
-5
@@ -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::_();
|
||||
}
|
||||
|
||||
+5
-5
@@ -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::_();
|
||||
}
|
||||
|
||||
+5
-5
@@ -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::_();
|
||||
}
|
||||
|
||||
+5
-5
@@ -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::_();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+6
-2
@@ -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 {}
|
||||
|
||||
+6
-2
@@ -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 {}
|
||||
|
||||
+6
-2
@@ -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 {}
|
||||
|
||||
+6
-2
@@ -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
|
||||
|
||||
+6
-2
@@ -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 {}
|
||||
|
||||
+8
-8
@@ -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%>();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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%>();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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%>();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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%>();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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%>();
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+8
-8
@@ -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();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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%>();
|
||||
}
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+8
-8
@@ -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 {
|
||||
|
||||
+8
-8
@@ -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 {
|
||||
|
||||
+8
-8
@@ -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 {
|
||||
|
||||
+8
-8
@@ -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
|
||||
|
||||
+8
-8
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
;
|
||||
|
||||
+14
-6
@@ -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
Reference in New Issue
Block a user