| // 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); | |
| } |