| Index: test/codegen/expect/language/mixin_type_parameter3_test.js | 
| diff --git a/test/codegen/expect/language/mixin_type_parameter3_test.js b/test/codegen/expect/language/mixin_type_parameter3_test.js | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..b15e488fa442d3fa44d18f43b102c72b8ed67f29 | 
| --- /dev/null | 
| +++ b/test/codegen/expect/language/mixin_type_parameter3_test.js | 
| @@ -0,0 +1,62 @@ | 
| +dart_library.library('language/mixin_type_parameter3_test', null, /* Imports */[ | 
| +  'dart_sdk', | 
| +  'expect' | 
| +], function load__mixin_type_parameter3_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_type_parameter3_test = Object.create(null); | 
| +  let Mixin1 = () => (Mixin1 = dart.constFn(mixin_type_parameter3_test.Mixin1$()))(); | 
| +  let Mixin2 = () => (Mixin2 = dart.constFn(mixin_type_parameter3_test.Mixin2$()))(); | 
| +  let B = () => (B = dart.constFn(mixin_type_parameter3_test.B$()))(); | 
| +  let BOfnum$String = () => (BOfnum$String = dart.constFn(mixin_type_parameter3_test.B$(core.num, core.String)))(); | 
| +  let Mixin1Ofnum = () => (Mixin1Ofnum = dart.constFn(mixin_type_parameter3_test.Mixin1$(core.num)))(); | 
| +  let Mixin1OfString = () => (Mixin1OfString = dart.constFn(mixin_type_parameter3_test.Mixin1$(core.String)))(); | 
| +  let Mixin2OfString = () => (Mixin2OfString = dart.constFn(mixin_type_parameter3_test.Mixin2$(core.String)))(); | 
| +  let Mixin2Ofnum = () => (Mixin2Ofnum = dart.constFn(mixin_type_parameter3_test.Mixin2$(core.num)))(); | 
| +  let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); | 
| +  mixin_type_parameter3_test.Mixin1$ = dart.generic(T => { | 
| +    class Mixin1 extends core.Object {} | 
| +    dart.addTypeTests(Mixin1); | 
| +    return Mixin1; | 
| +  }); | 
| +  mixin_type_parameter3_test.Mixin1 = Mixin1(); | 
| +  mixin_type_parameter3_test.Mixin2$ = dart.generic(T => { | 
| +    class Mixin2 extends core.Object {} | 
| +    dart.addTypeTests(Mixin2); | 
| +    return Mixin2; | 
| +  }); | 
| +  mixin_type_parameter3_test.Mixin2 = Mixin2(); | 
| +  mixin_type_parameter3_test.A = class A extends core.Object { | 
| +    new(foo) { | 
| +    } | 
| +  }; | 
| +  dart.setSignature(mixin_type_parameter3_test.A, { | 
| +    constructors: () => ({new: dart.definiteFunctionType(mixin_type_parameter3_test.A, [dart.dynamic])}) | 
| +  }); | 
| +  mixin_type_parameter3_test.B$ = dart.generic((K, V) => { | 
| +    class B extends dart.mixin(mixin_type_parameter3_test.A, mixin_type_parameter3_test.Mixin1$(K), mixin_type_parameter3_test.Mixin2$(V)) { | 
| +      new(foo) { | 
| +        super.new(foo); | 
| +      } | 
| +    } | 
| +    dart.addTypeTests(B); | 
| +    dart.setSignature(B, { | 
| +      constructors: () => ({new: dart.definiteFunctionType(mixin_type_parameter3_test.B$(K, V), [dart.dynamic])}) | 
| +    }); | 
| +    return B; | 
| +  }); | 
| +  mixin_type_parameter3_test.B = B(); | 
| +  mixin_type_parameter3_test.main = function() { | 
| +    let b = new (BOfnum$String())(null); | 
| +    expect$.Expect.isTrue(Mixin1Ofnum().is(b)); | 
| +    expect$.Expect.isTrue(!Mixin1OfString().is(b)); | 
| +    expect$.Expect.isTrue(Mixin2OfString().is(b)); | 
| +    expect$.Expect.isTrue(!Mixin2Ofnum().is(b)); | 
| +  }; | 
| +  dart.fn(mixin_type_parameter3_test.main, VoidTodynamic()); | 
| +  // Exports: | 
| +  exports.mixin_type_parameter3_test = mixin_type_parameter3_test; | 
| +}); | 
|  |