Nice/src/mlsub/typing Enumeration.java,1.19,1.20

Daniel Bonniot <[email protected]> Thu, 26 May 2005 15:22:09 +0000
Newsgroups gmane.comp.lang.nice.cvs
Message-ID <[email protected]>
Update of /cvsroot/nice/Nice/src/mlsub/typing
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10965/src/mlsub/typing

Modified Files:
	Enumeration.java 
Log Message:
Avoid looking setting kinds for Object when it's not used, as we already know
there is some solution.


Index: Enumeration.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/Enumeration.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** Enumeration.java	26 May 2005 12:25:46 -0000	1.19
--- Enumeration.java	26 May 2005 15:22:06 -0000	1.20
***************
*** 138,143 ****
          if (tag.getKind() == TopMonotype.TopKind.instance)
            {
!             // Tag is "Object". All TCs are solutions.
!             tag = tags[minFloating] = new MonotypeVar("enumeration");
            }
          else
--- 138,152 ----
          if (tag.getKind() == TopMonotype.TopKind.instance)
            {
!             if (all[minFloating])
!               // Tag is "Object". All TCs are solutions.
!               tag = tags[minFloating] = new MonotypeVar("enumeration");
!             else
!               {
!                 // We only want one solution anyway, which surely exists ;-)
!                 // No need to set kinds
! 		// recursive call
! 		setFloatingKinds(tags, all, minFloating + 1, res, doAll);
!                 return;
!               }
            }
          else
***************
*** 156,160 ****
  	      {
  		if(linkDbg && Typing.dbg)
! 		  Debug.println("Choosing kind " + c + " for " + tag);
  
  		if (tag instanceof MonotypeVar)
--- 165,169 ----
  	      {
  		if(linkDbg && Typing.dbg)
! 		  Debug.println("Choosing kind " + c + " for " + minFloating + ":" + tag);
  
  		if (tag instanceof MonotypeVar)
***************
*** 165,168 ****
--- 174,178 ----
  		// recursive call
  		setFloatingKinds(tags, all, minFloating + 1, res, doAll);
+ 
  		tag.setKind(null);
  	    }
***************
*** 217,221 ****
        for(int i = 0;i<tags.length;i++)
  	{
! 	  Engine.Constraint k = Engine.getConstraint(tags[i].getKind());
  	  BitVector obs;
  
--- 227,237 ----
        for(int i = 0;i<tags.length;i++)
  	{
!           Kind kind = tags[i].getKind();
! 
!           if (kind == TopMonotype.TopKind.instance)
!             continue;
! 
! 	  Engine.Constraint k = Engine.getConstraint(kind);
! 
  	  BitVector obs;
  



-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005