Hi,

In message "Re: new method dispatch rule (matz' proposal)"
    on Thu, 25 Jan 2007 13:58:25 +0900, Evan Phoenix <evan / fallingsnow.net> writes:

|The more this discussion goes on, the more I worry that Joe Q Public  
|programmer isn't going to be able to properly grasp these new rules.
|
|Everyone here is pretty much the creme de la creme of ruby core  
|developers and we're all still having troubles get our minds around  
|it (or at least I am).
|
|Let me propose a change to the rules that might help clean them up.  
|Change rules 3 and 4 to be one rule that reads:
|
|"If functional style calling is used, say foo(1), foo is looked up  
|first in the method table of the defining class as a private method.  
|If it is not found, normal dispatch occurs."

I think we need to summarize the current proposed schemes:

(a) my original proposal

  - functional style call will look for

    (1) private methods up from defining class to Kernel
    (2) public methods up from the receiver's class to Kernel if not
        found in step 1.

  - ordinary style call will look for

    (3) public methods up from the receiver's class to Kernel.  private
        methods will be skipped.

(b) Charles Nutter's proposal

  - functional style call will look for

    (1) any methods up from defining class to Kernel

  - ordinary style call will look for

    (2) he didn't say anything about this, either skipping private
        methods or raise error as we have today.

(c) Evan Phoenix's proposal

  - functional style call will look for

    (1) private methods in the defining class/module.
    (2) any methods up from the receiver's class to Kernel if not
        found.

  - ordinary style call will look for

    (3) he didn't say anything about this, either skipping private
        methods or raise error as we have today.

Are above summary OK, Charles, Evan?

For your note, MRI has implemented something similar to Evan's
proposal.

							matz.