Ticket #143 (closed defect: fixed)

Opened 3 months ago

Last modified 3 months ago

Library changes cause PlusEq.fss to fail static tests

Reported by: jmaessen Assigned to: nbeckman
Priority: major Milestone:
Component: static analysis Version:
Keywords: Cc:

Description

After some library changes that otherwise pass testing, PlusEq?.fss now overflows the stack during static testing:

java.lang.StackOverflowError
	at java.util.AbstractList$Itr.next(AbstractList.java:422)
	at com.sun.fortress.nodes.NodeUpdateVisitor.recurOnListOfId(NodeUpdateVisitor.java:3195)
	at com.sun.fortress.nodes.NodeUpdateVisitor.forAPIName(NodeUpdateVisitor.java:2745)
	at com.sun.fortress.nodes.NodeUpdateVisitor.forAPIName(NodeUpdateVisitor.java:26)
	at com.sun.fortress.nodes.APIName.accept(APIName.java:44)
	at com.sun.fortress.nodes.NodeUpdateVisitor.recur(NodeUpdateVisitor.java:2959)
	at com.sun.fortress.nodes.NodeUpdateVisitor.recurOnOptionOfAPIName(NodeUpdateVisitor.java:3574)
	at com.sun.fortress.nodes.NodeUpdateVisitor.forId(NodeUpdateVisitor.java:2751)
	at com.sun.fortress.nodes.NodeUpdateVisitor.forId(NodeUpdateVisitor.java:26)
	at com.sun.fortress.nodes.Id.accept(Id.java:58)
	at com.sun.fortress.nodes.NodeUpdateVisitor.recur(NodeUpdateVisitor.java:2959)
	at com.sun.fortress.nodes.NodeUpdateVisitor.forTraitType(NodeUpdateVisitor.java:2206)
	at com.sun.fortress.nodes.NodeUpdateVisitor.forTraitType(NodeUpdateVisitor.java:26)
	at com.sun.fortress.nodes.TraitType.accept(TraitType.java:142)
	at com.sun.fortress.compiler.typechecker.InferenceVarTranslator.canonicalizeVars(InferenceVarTranslator.java:94)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer$ChildSubtypeCache.get(TypeAnalyzer.java:1108)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.sub(TypeAnalyzer.java:415)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.reduceList(TypeAnalyzer.java:913)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.reduceConjuncts(TypeAnalyzer.java:877)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.access$600(TypeAnalyzer.java:59)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer$3.value(TypeAnalyzer.java:400)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer$3.value(TypeAnalyzer.java:398)
	at edu.rice.cs.plt.iter.MappedIterator.next(MappedIterator.java:60)
	at edu.rice.cs.plt.iter.IterUtil.first(IterUtil.java:944)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.reduceList(TypeAnalyzer.java:902)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.reduceDisjuncts(TypeAnalyzer.java:888)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.mt(TypeAnalyzer.java:405)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer.access$500(TypeAnalyzer.java:59)
	at com.sun.fortress.compiler.typechecker.TypeAnalyzer$SubtypeHistory.meetNormal(TypeAnalyzer.java:1045)
	at com.sun.fortress.compiler.typechecker.ConstraintFormula$SimpleFormula.merge(ConstraintFormula.java:190)
	at com.sun.fortress.compiler.typechecker.ConstraintFormula$SimpleFormula.and(ConstraintFormula.java:119)
	at com.sun.fortress.compiler.typechecker.ConstraintFormula$SimpleFormula.merge(ConstraintFormula.java:210)
	at com.sun.fortress.compiler.typechecker.ConstraintFormula$SimpleFormula.and(ConstraintFormula.java:119)

I have disabled it in my local copy of StaticJUTest on Nels' advice; it's triggering a known bug. Because it's a regression I want to make sure it's ticketed and isn't lost.

Change History

07/08/08 14:31:05 changed by nbeckman

  • status changed from new to closed.
  • resolution set to fixed.

Commit 2201 fixes this. We may not have fully fixed type inference, but at least it passes all the examples we have so far.