On 11/6/2012 9:26 AM, Adam D. Ruppe wrote:
On Tuesday, 6 November 2012 at 17:16:34 UTC, Adam D. Ruppe wrote:
  [ExternalName("log-in")] /* we can do this now */
    void logIn([ExternalName("user-id")] string userId)


BTW we could conceivably do:

[ExternalName("log-in"),
ParameterAttribute!("userId")(ExternalName("user-id")]
    void logIn(string userId) {}


Where the ParameterAttribute simply matches up the param by name or by position
(if you pass an int instead of string) and puts the other argument in that map.

When you scan the function for attributes, you keep your eye open for that
ParameterAttribute thingy and match it up in the library.


So if it is too painful to put it in the compiler, we could make it work in the
library.

That looks like it can work. It's an interesting idea.

Other possibilities are:

1. Use a naming convention for the parameters, and then have an attribute for the function that more or less means that the function follows that naming convention. Naming conventions are often used in systems that don't have UDAs.

2. Use a user-defined wrapper type for the parameter. Then query for that type.

Reply via email to