Update of /cvsroot/nice/Nice/src/bossa/syntax
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8381/src/bossa/syntax
Modified Files:
NiceMethod.java
Log Message:
Handle new implementations that cover both a new method and an existing method
that new one generalizes.
Index: NiceMethod.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceMethod.java,v
retrieving revision 1.42
retrieving revision 1.43
diff -C2 -d -r1.42 -r1.43
*** NiceMethod.java 12 Oct 2004 23:35:48 -0000 1.42
--- NiceMethod.java 13 Oct 2004 15:44:09 -0000 1.43
***************
*** 239,246 ****
|| Types.typeParameterDispatch(getType(), s.getType()))
{
! // If the method is imported (so it has not computed what
! // methods it specializes),
// check if the reverse relation holds with that method
! if (! d.specializesMethods() &&
Typing.smaller(itsDomain, ourDomain, true) &&
! Types.typeParameterDispatch(s.getType(), getType()))
--- 239,245 ----
|| Types.typeParameterDispatch(getType(), s.getType()))
{
! // If the method is imported,
// check if the reverse relation holds with that method
! if (d.module != null && d.module.interfaceFile() &&
Typing.smaller(itsDomain, ourDomain, true) &&
! Types.typeParameterDispatch(s.getType(), getType()))
***************
*** 254,257 ****
--- 253,259 ----
// d is a specialized version of this.
+ if (d instanceof NiceMethod)
+ ((NiceMethod) d).addSpecializedMethod(this);
+
// Therefore, all its implementations also belong to this.
bossa.link.Alternative.addAll(d, this);
|