blob: 876fee41b204933b19188fdb06b648fbbb21da6d [file] [log] [blame]
// 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.
// @dart = 2.9
// 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);
}