[Issue 2343] New: unified function call syntax
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sun Sep  7 06:38:32 PDT 2008
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=2343
           Summary: unified function call syntax
           Product: D
           Version: 1.035
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: benoit at tionex.de
If a global function exists like this:
bool equals(char[] a, char[] b){
  return a == b;
}
It is possible to use it like this:
char[] str1 = ...;
char[] str2 = ...;
str1.equals( str2 ); // compiles OK
But if this is used from within a class that also has a method with the
name "equals" the syntax above does not work any more:
class A {
  bool equals( Object o ){ ... }
  void foo (){
    bool res = str1.equals(str2); // compile error
      // equals(Object) does not
      // match parameter types (char[],char[])
    bool res2 = .equals(str1,str2); // compile OK
  }
}
The compile error should not happen, because in case of str1.equals(.. only the
methods of type(str1) and global functions should be looked at.
-- 
    
    
More information about the Digitalmars-d-bugs
mailing list