test/com/google/javascript/jscomp/TypeCheckTest.java
/**
   * structural interface matching will also be able to structurally match ordinary function types
   * check if the return types of the ordinary function types match (should not match, since I7 is
   * declared with @interface)
   */
structural interface matching will also be able to structurally match ordinary function types
check if the return types of the ordinary function types match (should not match, since I7 is
declared with @interface)
structural interface matching will also be able to structurally match ordinary function types check if the return types of the ordinary function types match ( should not match since I7 is declared with @interface )
@Test
  public void testStructuralInterfaceMatching22_2() {
    testTypesWithExtraExterns(
        lines(
            EXTERNS_FOR_LONG_MATCHING_CHAIN_RECORD,
            "/** @interface */",
            "function I7() {}",
            "/** @type{function(): I5} */",
            "I7.prototype.getElement = function(){};",
            "",
            "/** @constructor */",
            "function C7() {}",
            "/** @type{function(): C5} */",
            "C7.prototype.getElement = function(){};"),
        lines(
            "/** @type {I7} */",
            "var i7;",
            "/** @type {C7} */",
            "var c7;",
            "",
            "i7 = c7;"),
        lines(
            "assignment",
            "found   : (C7|null)",
            "required: (I7|null)"));
  }
@ Test public void testStructuralInterfaceMatching22_2 ( ) { testTypesWithExtraExterns ( lines ( EXTERNS_FOR_LONG_MATCHING_CHAIN_RECORD , "/** @interface */" , "function I7() {}" , "/** @type{function(): I5} */" , "I7.prototype.getElement = function(){};" , "" , "/** @constructor */" , "function C7() {}" , "/** @type{function(): C5} */" , "C7.prototype.getElement = function(){};" ) , lines ( "/** @type {I7} */" , "var i7;" , "/** @type {C7} */" , "var c7;" , "" , "i7 = c7;" ) , lines ( "assignment" , "found   : (C7|null)" , "required: (I7|null)" ) ) ; }
structural interface matching will also be able to structurally match ordinary function types
 check if the return types of the ordinary function types match (should not match, since I7 is
 declared with @interface)
structural interface matching will also be able to structurally match ordinary function types check if the return types of the ordinary function types match ( should not match since I7 is declared with @interface )
// I5 and C5 shares the same type structure