blob: 7ed155bebbae0c025736dfbdf1026c5cc28bfbfa [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.
// 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);
}