blob: 8360237584faee0e06c6a4b2239498fd95f779e9 [file] [log] [blame]
// Copyright (c) 2022, 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.
// Generated by
//
// pkg/front_end/benchmarks/patterns/generate_datatypes.dart
import '../test_datatypes.dart';
abstract class Base8 {
void dynamicDispatch(Counter counter);
R accept<R, A>(Visitor8<R, A> visitor, A arg);
}
class Sub0 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch0(Counter counter) {
counter.inc();
}
void visitorDispatch0(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub0(this, arg);
}
}
class Sub1 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch1(Counter counter) {
counter.inc();
}
void visitorDispatch1(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub1(this, arg);
}
}
class Sub2 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch2(Counter counter) {
counter.inc();
}
void visitorDispatch2(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub2(this, arg);
}
}
class Sub3 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch3(Counter counter) {
counter.inc();
}
void visitorDispatch3(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub3(this, arg);
}
}
class Sub4 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch4(Counter counter) {
counter.inc();
}
void visitorDispatch4(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub4(this, arg);
}
}
class Sub5 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch5(Counter counter) {
counter.inc();
}
void visitorDispatch5(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub5(this, arg);
}
}
class Sub6 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch6(Counter counter) {
counter.inc();
}
void visitorDispatch6(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub6(this, arg);
}
}
class Sub7 extends Base8 {
@override
void dynamicDispatch(Counter counter) {
counter.inc();
}
void ifThenElseDispatch7(Counter counter) {
counter.inc();
}
void visitorDispatch7(Counter counter) {
counter.inc();
}
@override
R accept<R, A>(Visitor8<R, A> visitor, A arg) {
return visitor.visitSub7(this, arg);
}
}
List<Base8> createData8() {
return [
Sub0(),
Sub1(),
Sub2(),
Sub3(),
Sub4(),
Sub5(),
Sub6(),
Sub7(),
];
}
void incByDynamicDispatch8(Base8 base, Counter counter) {
base.dynamicDispatch(counter);
}
void incByIfThenElseDispatch8(Base8 base, Counter counter) {
if (base is Sub0) {
base.ifThenElseDispatch0(counter);
} else if (base is Sub1) {
base.ifThenElseDispatch1(counter);
} else if (base is Sub2) {
base.ifThenElseDispatch2(counter);
} else if (base is Sub3) {
base.ifThenElseDispatch3(counter);
} else if (base is Sub4) {
base.ifThenElseDispatch4(counter);
} else if (base is Sub5) {
base.ifThenElseDispatch5(counter);
} else if (base is Sub6) {
base.ifThenElseDispatch6(counter);
} else if (base is Sub7) {
base.ifThenElseDispatch7(counter);
}
}
const Visitor8<void, Counter> visitor = CounterVisitor8();
void incByVisitorDispatch8(Base8 base, Counter counter) {
base.accept(visitor, counter);
}
abstract class Visitor8<R, A> {
R visitSub0(Sub0 sub, A arg);
R visitSub1(Sub1 sub, A arg);
R visitSub2(Sub2 sub, A arg);
R visitSub3(Sub3 sub, A arg);
R visitSub4(Sub4 sub, A arg);
R visitSub5(Sub5 sub, A arg);
R visitSub6(Sub6 sub, A arg);
R visitSub7(Sub7 sub, A arg);
}
class CounterVisitor8 implements Visitor8<void, Counter> {
const CounterVisitor8();
@override
void visitSub0(Sub0 sub, Counter counter) {
sub.visitorDispatch0(counter);
}
@override
void visitSub1(Sub1 sub, Counter counter) {
sub.visitorDispatch1(counter);
}
@override
void visitSub2(Sub2 sub, Counter counter) {
sub.visitorDispatch2(counter);
}
@override
void visitSub3(Sub3 sub, Counter counter) {
sub.visitorDispatch3(counter);
}
@override
void visitSub4(Sub4 sub, Counter counter) {
sub.visitorDispatch4(counter);
}
@override
void visitSub5(Sub5 sub, Counter counter) {
sub.visitorDispatch5(counter);
}
@override
void visitSub6(Sub6 sub, Counter counter) {
sub.visitorDispatch6(counter);
}
@override
void visitSub7(Sub7 sub, Counter counter) {
sub.visitorDispatch7(counter);
}
}