Changeset 2232
Legend:
- Unmodified
- Added
- Removed
-
trunk/Library/FortressLibrary.fss
r2226 r2232 3059 3059 3060 3060 opr =(self, other:CompleteRange[\T\]): Boolean = 3061 isBounded()=other.isBounded() AND lower()=other.lower() AND |self| = |other| 3061 isBounded()=other.isBounded() AND lower()=other.lower() AND 3062 extent() = other.extent() 3062 3063 opr CMP(self, other:Range[\T\]): Comparison = 3063 3064 typecase other of … … 3105 3106 (** ParRanges and SeqRanges, the simplest and most basic of all 3106 3107 generators. They generate |self| numbers, incrementing by 1, 3107 starting with lower() (that's the canonical ordering). Note that 3108 |self| may be negative, in which case the range represents a 3109 partial range that only generates elements when provided with a 3110 negative increment (by writing range:(-increment)). These ranges 3111 generate 0 elements if an attempt is made to enumerate them. *) 3108 starting with lower() (that's the canonical ordering). *) 3112 3109 trait ScalarRange[\N extends Integral[\N\], bool bounded\] 3113 3110 extends { FullRange[\N, bounded\] } … … 3118 3115 widenUpper(): ScalarRange[\N,false\] = lower()#(extent()+1) 3119 3116 widenLower(): ScalarRange[\N,false\] = (lower()-1)#(extent()+1) 3120 opr |self| : ZZ32 = narrow( extent())3117 opr |self| : ZZ32 = narrow(0 MAX extent()) 3121 3118 opr[i:N]: N = 3122 3119 if 0 <= i < extent() then … … 3127 3124 opr IN(a:N, self): Boolean = do 3128 3125 t = a - lower() 3129 0 <= t < |self|3126 0 <= t < extent() 3130 3127 end 3131 3128 end … … 3258 3255 widenUpper(): Tuple2Range[\N,M,true\] = Tuple2Range[\N,M,true\](l1,l2,x1+1,x2+1) 3259 3256 widenLower(): Tuple2Range[\N,M,true\] = Tuple2Range[\N,M,true\](l1-1,l2-1,x1+1,x2+1) 3260 opr |self| : ZZ32 = narrow( x1) narrow(x2)3257 opr |self| : ZZ32 = narrow((0 MAX x1) (0 MAX x2)) 3261 3258 opr[i:(N,M)]: (N,M) = do 3262 3259 (i1,i2) = i … … 3306 3303 widenLower(): Tuple3Range[\N1,N2,N3,true\] = 3307 3304 Tuple3Range[\N1,N2,N3,true\](l1-1,l2-1,l3-1,x1+1,x2+1,x3+1) 3308 opr |self| : (N1,N2,N3) = narrow( x1) narrow(x2) narrow(x3)3305 opr |self| : (N1,N2,N3) = narrow((0 MAX x1) (0 MAX x2) (0 MAX x3)) 3309 3306 opr[i:(N1,N2,N3)]: (N1,N2,N3) = do 3310 3307 (i1,i2,i3) = i -
trunk/ProjectFortress/src/com/sun/fortress/interpreter/evaluator/values/OverloadedFunction.java
r2164 r2232 838 838 if (oargs != null && 839 839 argsMatchTypes(oargs, sfn.getDomain()) && 840 (best == -1 || 841 best == i || 842 FTypeTuple.moreSpecificThan(sfn.getDomain(), best_sfn.getDomain()))) { 840 (best == -1 || 841 FTypeTuple.moreSpecificThan(sfn.getDomain(), best_sfn.getDomain()))) { 843 842 best = i; 844 843 best_sfn = sfn;

