| // Copyright (c) 2013, 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 https://code.google.com/p/dart/issues/detail?id=10581. |
| |
| import 'package:expect/expect.dart'; |
| |
| abstract class AxesObject { |
| Update(); |
| } |
| |
| String result = ''; |
| |
| class Point2DObject extends AxesObject { |
| Update() { |
| result += 'P'; |
| } |
| } |
| |
| class BestFitObject extends AxesObject { |
| Update() { |
| result += 'B'; |
| } |
| } |
| |
| class Foo { |
| AddAxesObject(type) { |
| AxesObject? a = null; |
| switch (type) { |
| case 100: |
| a = new Point2DObject(); |
| break; |
| case 200: |
| a = new BestFitObject(); |
| break; |
| } |
| if (a != null) { |
| a.Update(); |
| } |
| } |
| |
| AddAxesObject2(type) { |
| AxesObject? a = null; |
| if (type == 100) { |
| a = new Point2DObject(); |
| } else if (type == 200) { |
| a = new BestFitObject(); |
| } |
| if (a != null) { |
| a.Update(); |
| } |
| } |
| } |
| |
| main() { |
| var f = new Foo(); |
| f.AddAxesObject(100); |
| f.AddAxesObject(200); |
| f.AddAxesObject2(100); |
| f.AddAxesObject2(200); |
| Expect.equals('PBPB', result); |
| } |