Files
sdk/pkg/front_end/testcases/general/issue55152_2.dart
T
Chloe Stefantsova 6f4e0b403c [cfe] Add non-inferred not unaliased invocations into delayed queue
Such invocations were simply skipped before, remaining not unaliased
in the output Kernel code, which prevented evaluating them as
constants.

Closes https://github.com/dart-lang/sdk/issues/55152

Change-Id: I3a54f7c806a0c4fbd8158691be113bd2deae04f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357621
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2024-03-21 10:40:50 +00:00

76 lines
1.4 KiB
Dart

// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
class A {
const A();
const factory A.redir() = B;
const factory A.redir2() = B;
const A.named();
const A.named2();
const factory A.selfRedir() = A.named;
const factory A.selfRedir2() = A.named2;
}
class B extends A {
const B();
}
typedef TA = A;
test(@TA.redir() int x, @TA.named() int x2, @A.redir() int x3,
@A.selfRedir() int x4) {
@TA.redir2()
int localVariable = 0;
@TA.redir2()
void localFunction() {}
@TA.named2()
int localVariable2 = 0;
@TA.named2()
void localFunction2() {}
@A.redir2()
int localVariable3 = 0;
@A.redir2()
void localFunction3() {}
@A.selfRedir2()
int localVariable4 = 0;
@A.selfRedir2()
void localFunction4() {}
}
class Test {
test(@TA.redir() int x, @TA.named() int x2, @A.redir() int x3,
@A.selfRedir() int x4) {
@TA.redir2()
int localVariable = 0;
@TA.redir2()
void localFunction() {}
@TA.named2()
int localVariable2 = 0;
@TA.named2()
void localFunction2() {}
@A.redir2()
int localVariable3 = 0;
@A.redir2()
void localFunction3() {}
@A.selfRedir2()
int localVariable4 = 0;
@A.selfRedir2()
void localFunction4() {}
}
}