blob: a49954406008c75d5c652d690bc03d2347a7b96a [file] [log] [blame]
// 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);
}