Files
sdk/tests/language/optimize/inline_super_test.dart
T
Robert Nystrom c959c9aba7 Migrate language_2/optimize to NNBD.
Change-Id: I3f67dd79ff2ee745cc2ea161ce7150630e805c97
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150186
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2020-06-06 01:42:35 +00:00

39 lines
1.1 KiB
Dart

// Copyright (c) 2012, 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.
// Regression test for dart2js issue 6639.
library inline_super_test;
import "package:expect/expect.dart";
part 'inline_super_part.dart';
// Long comment to ensure source positions in the following code are
// larger than the part file. Best way to ensure that is to include
// the part as a comment:
//
// class Player extends LivingActor {
// Player (deathCallback) : super(null, deathCallback);
// }
class Percept {}
class Actor {
final percept;
Actor(this.percept);
}
class LivingActor extends Actor {
// The bug occurs when inlining the node [:new Percept():] into
// [Actor]'s constructor. When this inlining is being initiated
// from [Player], we must take care to ensure that we know that we
// are inlining from this location, and not [Player].
LivingActor() : super(new Percept());
}
main() {
Expect.isTrue(new Player().percept is Percept);
}