Index: test/codegen/expect/language/mixin_bound_test.js |
diff --git a/test/codegen/expect/language/mixin_bound_test.js b/test/codegen/expect/language/mixin_bound_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6517ff9088c973d8b5c1b17c43df61067c50ffa0 |
--- /dev/null |
+++ b/test/codegen/expect/language/mixin_bound_test.js |
@@ -0,0 +1,176 @@ |
+dart_library.library('language/mixin_bound_test', null, /* Imports */[ |
+ 'dart_sdk', |
+ 'expect' |
+], function load__mixin_bound_test(exports, dart_sdk, expect) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const expect$ = expect.expect; |
+ const mixin_bound_test = Object.create(null); |
+ let AbstractAddition = () => (AbstractAddition = dart.constFn(mixin_bound_test.AbstractAddition$()))(); |
+ let AbstractSubtraction = () => (AbstractSubtraction = dart.constFn(mixin_bound_test.AbstractSubtraction$()))(); |
+ let AdditionWithEval = () => (AdditionWithEval = dart.constFn(mixin_bound_test.AdditionWithEval$()))(); |
+ let SubtractionWithEval = () => (SubtractionWithEval = dart.constFn(mixin_bound_test.SubtractionWithEval$()))(); |
+ let AbstractMultiplication = () => (AbstractMultiplication = dart.constFn(mixin_bound_test.AbstractMultiplication$()))(); |
+ let MultiplicationWithEval = () => (MultiplicationWithEval = dart.constFn(mixin_bound_test.MultiplicationWithEval$()))(); |
+ let AdditionWithStringConversion = () => (AdditionWithStringConversion = dart.constFn(mixin_bound_test.AdditionWithStringConversion$()))(); |
+ let SubtractionWithStringConversion = () => (SubtractionWithStringConversion = dart.constFn(mixin_bound_test.SubtractionWithStringConversion$()))(); |
+ let MultiplicationWithStringConversion = () => (MultiplicationWithStringConversion = dart.constFn(mixin_bound_test.MultiplicationWithStringConversion$()))(); |
+ let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))(); |
+ mixin_bound_test.AbstractExpression = class AbstractExpression extends core.Object {}; |
+ mixin_bound_test.AbstractAddition$ = dart.generic(E => { |
+ class AbstractAddition extends core.Object { |
+ new(operand1, operand2) { |
+ this.operand1 = operand1; |
+ this.operand2 = operand2; |
+ } |
+ } |
+ dart.addTypeTests(AbstractAddition); |
+ dart.setSignature(AbstractAddition, { |
+ constructors: () => ({new: dart.definiteFunctionType(mixin_bound_test.AbstractAddition$(E), [E, E])}) |
+ }); |
+ return AbstractAddition; |
+ }); |
+ mixin_bound_test.AbstractAddition = AbstractAddition(); |
+ mixin_bound_test.AbstractSubtraction$ = dart.generic(E => { |
+ class AbstractSubtraction extends core.Object { |
+ new(operand1, operand2) { |
+ this.operand1 = operand1; |
+ this.operand2 = operand2; |
+ } |
+ } |
+ dart.addTypeTests(AbstractSubtraction); |
+ dart.setSignature(AbstractSubtraction, { |
+ constructors: () => ({new: dart.definiteFunctionType(mixin_bound_test.AbstractSubtraction$(E), [E, E])}) |
+ }); |
+ return AbstractSubtraction; |
+ }); |
+ mixin_bound_test.AbstractSubtraction = AbstractSubtraction(); |
+ mixin_bound_test.AbstractNumber = class AbstractNumber extends core.Object { |
+ new(val) { |
+ this.val = val; |
+ } |
+ }; |
+ dart.setSignature(mixin_bound_test.AbstractNumber, { |
+ constructors: () => ({new: dart.definiteFunctionType(mixin_bound_test.AbstractNumber, [core.int])}) |
+ }); |
+ mixin_bound_test.ExpressionWithEval = class ExpressionWithEval extends core.Object {}; |
+ mixin_bound_test.AdditionWithEval$ = dart.generic(E => { |
+ class AdditionWithEval extends core.Object { |
+ get eval() { |
+ return dart.notNull(this.operand1.eval) + dart.notNull(this.operand2.eval); |
+ } |
+ } |
+ dart.addTypeTests(AdditionWithEval); |
+ return AdditionWithEval; |
+ }); |
+ mixin_bound_test.AdditionWithEval = AdditionWithEval(); |
+ mixin_bound_test.SubtractionWithEval$ = dart.generic(E => { |
+ class SubtractionWithEval extends core.Object { |
+ get eval() { |
+ return dart.notNull(this.operand1.eval) - dart.notNull(this.operand2.eval); |
+ } |
+ } |
+ dart.addTypeTests(SubtractionWithEval); |
+ return SubtractionWithEval; |
+ }); |
+ mixin_bound_test.SubtractionWithEval = SubtractionWithEval(); |
+ mixin_bound_test.NumberWithEval = class NumberWithEval extends core.Object { |
+ get eval() { |
+ return this.val; |
+ } |
+ }; |
+ mixin_bound_test.AbstractMultiplication$ = dart.generic(E => { |
+ class AbstractMultiplication extends core.Object { |
+ new(operand1, operand2) { |
+ this.operand1 = operand1; |
+ this.operand2 = operand2; |
+ } |
+ } |
+ dart.addTypeTests(AbstractMultiplication); |
+ dart.setSignature(AbstractMultiplication, { |
+ constructors: () => ({new: dart.definiteFunctionType(mixin_bound_test.AbstractMultiplication$(E), [E, E])}) |
+ }); |
+ return AbstractMultiplication; |
+ }); |
+ mixin_bound_test.AbstractMultiplication = AbstractMultiplication(); |
+ mixin_bound_test.MultiplicationWithEval$ = dart.generic(E => { |
+ class MultiplicationWithEval extends core.Object { |
+ get eval() { |
+ return dart.notNull(this.operand1.eval) * dart.notNull(this.operand2.eval); |
+ } |
+ } |
+ dart.addTypeTests(MultiplicationWithEval); |
+ return MultiplicationWithEval; |
+ }); |
+ mixin_bound_test.MultiplicationWithEval = MultiplicationWithEval(); |
+ mixin_bound_test.ExpressionWithStringConversion = class ExpressionWithStringConversion extends core.Object {}; |
+ mixin_bound_test.AdditionWithStringConversion$ = dart.generic(E => { |
+ class AdditionWithStringConversion extends core.Object { |
+ toString() { |
+ return dart.str`(${this.operand1} + ${this.operand2}))`; |
+ } |
+ } |
+ dart.addTypeTests(AdditionWithStringConversion); |
+ return AdditionWithStringConversion; |
+ }); |
+ mixin_bound_test.AdditionWithStringConversion = AdditionWithStringConversion(); |
+ mixin_bound_test.SubtractionWithStringConversion$ = dart.generic(E => { |
+ class SubtractionWithStringConversion extends core.Object { |
+ toString() { |
+ return dart.str`(${this.operand1} - ${this.operand2})`; |
+ } |
+ } |
+ dart.addTypeTests(SubtractionWithStringConversion); |
+ return SubtractionWithStringConversion; |
+ }); |
+ mixin_bound_test.SubtractionWithStringConversion = SubtractionWithStringConversion(); |
+ mixin_bound_test.NumberWithStringConversion = class NumberWithStringConversion extends core.Object { |
+ toString() { |
+ return dart.toString(this.val); |
+ } |
+ }; |
+ mixin_bound_test.MultiplicationWithStringConversion$ = dart.generic(E => { |
+ class MultiplicationWithStringConversion extends core.Object { |
+ toString() { |
+ return dart.str`(${this.operand1} * ${this.operand2})`; |
+ } |
+ } |
+ dart.addTypeTests(MultiplicationWithStringConversion); |
+ return MultiplicationWithStringConversion; |
+ }); |
+ mixin_bound_test.MultiplicationWithStringConversion = MultiplicationWithStringConversion(); |
+ mixin_bound_test.Expression = class Expression extends dart.mixin(mixin_bound_test.AbstractExpression, mixin_bound_test.ExpressionWithEval, mixin_bound_test.ExpressionWithStringConversion) { |
+ new() { |
+ super.new(); |
+ } |
+ }; |
+ mixin_bound_test.Addition = class Addition extends dart.mixin(mixin_bound_test.AbstractAddition$(mixin_bound_test.Expression), mixin_bound_test.AdditionWithEval$(mixin_bound_test.Expression), mixin_bound_test.AdditionWithStringConversion$(mixin_bound_test.Expression)) { |
+ new(operand1, operand2) { |
+ super.new(operand1, operand2); |
+ } |
+ }; |
+ mixin_bound_test.Subtraction = class Subtraction extends dart.mixin(mixin_bound_test.AbstractSubtraction$(mixin_bound_test.Expression), mixin_bound_test.SubtractionWithEval$(mixin_bound_test.Expression), mixin_bound_test.SubtractionWithStringConversion$(mixin_bound_test.Expression)) { |
+ new(operand1, operand2) { |
+ super.new(operand1, operand2); |
+ } |
+ }; |
+ mixin_bound_test.Number = class Number extends dart.mixin(mixin_bound_test.AbstractNumber, mixin_bound_test.NumberWithEval, mixin_bound_test.NumberWithStringConversion) { |
+ new(val) { |
+ super.new(val); |
+ } |
+ }; |
+ mixin_bound_test.Multiplication = class Multiplication extends dart.mixin(mixin_bound_test.AbstractMultiplication$(mixin_bound_test.Expression), mixin_bound_test.MultiplicationWithEval$(mixin_bound_test.Expression), mixin_bound_test.MultiplicationWithStringConversion$(mixin_bound_test.Expression)) { |
+ new(operand1, operand2) { |
+ super.new(operand1, operand2); |
+ } |
+ }; |
+ mixin_bound_test.main = function() { |
+ let e = new mixin_bound_test.Multiplication(new mixin_bound_test.Addition(new mixin_bound_test.Number(4), new mixin_bound_test.Number(2)), new mixin_bound_test.Subtraction(new mixin_bound_test.Number(10), new mixin_bound_test.Number(7))); |
+ expect$.Expect.equals('((4 + 2)) * (10 - 7)) = 18', dart.str`${e} = ${e.eval}`); |
+ }; |
+ dart.fn(mixin_bound_test.main, VoidTovoid()); |
+ // Exports: |
+ exports.mixin_bound_test = mixin_bound_test; |
+}); |