Goose  Diff

Differences From Artifact [3dcc820212]:

  • File bs/builtins/types/func/invoke.cpp — part of check-in [0ecc71a91f] at 2019-03-22 20:13:10 on branch trunk — Use the entire callee value to look up invocation rules rather than just their type, and restricted template invocation to constant tfunc values. (user: achavasse size: 3657)

To Artifact [2185f95e6b]:

  • File bs/builtins/types/func/invoke.cpp — part of check-in [61b4955ba0] at 2019-03-23 14:04:07 on branch trunk — ir: made it possible to use anonymous ANYTERM patterns in matching. (user: achavasse size: 3656)

97
98
99
100
101
102
103
104
105
106
107
108
109
110
                return callee;
            }
    };

    void SetupFunctionInvocationRule( Env& e )
    {
        e.invocationRuleSet()->addRule(
            ValueToIRExpr( ValuePattern( ANYTERM( s ),
                ValueToIRExpr( Value( TSID( type ), TVEC( TSID( func ),
                ANYTERM( k ), ANYTERM( rt ), ANYTERM( p ) ) ) ),
                ANYTERM( f ) ) ),
            make_shared< FunctionInvocationRule >() );
    }
}







|

|
|



97
98
99
100
101
102
103
104
105
106
107
108
109
110
                return callee;
            }
    };

    void SetupFunctionInvocationRule( Env& e )
    {
        e.invocationRuleSet()->addRule(
            ValueToIRExpr( ValuePattern( ANYTERM( _ ),
                ValueToIRExpr( Value( TSID( type ), TVEC( TSID( func ),
                ANYTERM( _ ), ANYTERM( _ ), ANYTERM( _ ) ) ) ),
                ANYTERM( _ ) ) ),
            make_shared< FunctionInvocationRule >() );
    }
}