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