Show
Ignore:
Timestamp:
06/23/09 20:42:30 (5 months ago)
Author:
sukyoungryu
Message:

[static checker] Fixed a bug handling symmetric exclusion relationship.
Implemented checking that if trait T excludes trait U, no third trait may extend both T and U, nor may either T or U extend the other.
Added tests and eliminated unnecessary excludes clauses in the CompilerBuiltin? library.
Refactored static checker code.

Location:
trunk/ProjectFortress/LibraryBuiltin
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/ProjectFortress/LibraryBuiltin/CompilerBuiltin.fsi

    r3882 r3887  
    2222end Object 
    2323 
    24 trait String excludes { Number } (* not necessary, symmetric *) 
     24trait String 
    2525opr || (self, b:String):String 
    2626end 
     
    3232printlnZZ32(x:ZZ32):() 
    3333 
    34 strToInt(s:String):ZZ32  
    35                            
     34strToInt(s:String):ZZ32 
     35 
    3636trait Number excludes { String } 
    3737end 
  • trunk/ProjectFortress/LibraryBuiltin/CompilerBuiltin.fss

    r3882 r3887  
    3636end Object 
    3737 
    38 trait String excludes { Number } (* not necessary, symmetric *) 
     38trait String 
    3939    opr ||(self, b:String): String =  jConcatenate(self, b) 
    4040end