Update of /cvsroot/nice/Nice/src/mlsub/typing
In directory sc8-pr-cvs1:/tmp/cvs-serv7558/src/mlsub/typing
Modified Files:
Enumeration.java
Log Message:
Handle coverage tests of methods with an Object parameter.
Index: Enumeration.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/Enumeration.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Enumeration.java 29 Apr 2003 16:45:50 -0000 1.9
--- Enumeration.java 16 Dec 2003 11:39:10 -0000 1.10
***************
*** 19,22 ****
--- 19,23 ----
import mlsub.typing.lowlevel.BitVector;
import mlsub.typing.lowlevel.Element;
+ import mlsub.typing.lowlevel.Kind;
/**
***************
*** 127,140 ****
{
while(minFloating<tags.length
! && (all[minFloating] != doAll ||
! tags[minFloating].getKind() != null
! && tags[minFloating].getKind() != Engine.variablesConstraint))
minFloating++;
if(minFloating<tags.length)
{
! // There might be a garbagy Engine.variablesConstraint
! // in the monotype variable variable
! tags[minFloating].setKind(null);
for(Iterator cs = Engine.listConstraints(); cs.hasNext();)
--- 128,150 ----
{
while(minFloating<tags.length
! && (all[minFloating] != doAll ||
! isFixedKind(tags[minFloating].getKind())))
minFloating++;
if(minFloating<tags.length)
{
! Element tag = tags[minFloating];
!
! if (tag.getKind() == TopMonotype.TopKind.instance)
! {
! // Tag is "Object". All TCs are solutions.
! tag = tags[minFloating] = new MonotypeVar("enumeration");
! }
! else
! {
! // There might be a garbagy Engine.variablesConstraint
! // in the monotype variable variable
! tag.setKind(null);
! }
for(Iterator cs = Engine.listConstraints(); cs.hasNext();)
***************
*** 146,159 ****
{
if(linkDbg)
! Debug.println("Choosing kind "+c+" for "+tags[minFloating]);
! if(tags[minFloating] instanceof MonotypeVar)
! Engine.forceKind(tags[minFloating],c.associatedKind);
else
! Engine.forceKind(tags[minFloating],c);
// recursive call
setFloatingKinds(tags, all, minFloating + 1, res, doAll);
! tags[minFloating].setKind(null);
}
}
--- 156,169 ----
{
if(linkDbg)
! Debug.println("Choosing kind " + c + " for " + tag);
! if (tag instanceof MonotypeVar)
! Engine.forceKind(tag, c.associatedKind);
else
! Engine.forceKind(tag, c);
// recursive call
setFloatingKinds(tags, all, minFloating + 1, res, doAll);
! tag.setKind(null);
}
}
***************
*** 182,186 ****
}
}
!
private static class SolutionFound extends RuntimeException {}
--- 192,203 ----
}
}
!
! private static boolean isFixedKind(Kind k)
! {
! return k != null
! && k != Engine.variablesConstraint
! && k != TopMonotype.TopKind.instance;
! }
!
private static class SolutionFound extends RuntimeException {}
|