mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 23:59:47 +00:00
67539c2faf
Change-Id: I318742cd4303d70c0625c9efd98bb01087aa5de4 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150466 Commit-Queue: Bob Nystrom <rnystrom@google.com> Reviewed-by: Erik Ernst <eernst@google.com>
64 lines
1.2 KiB
Dart
64 lines
1.2 KiB
Dart
// 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);
|
|
}
|