rua.fn.Sym().Name, rname)
}
if cs := rua.returnHasProp(rname, ResultIsConcreteTypeConvertedToInterface); cs != nil {
- // FIXME: add cond level support here
- adj := passConcreteToItfCallAdj
- cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
- adj = callResultRescoreAdj
+
+ adj := returnFeedsConcreteToInterfaceCallAdj
cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
}
case ir.OCALLFUNC:
}
}
if cs := rua.returnHasProp(rname, ResultAlwaysSameInlinableFunc); cs != nil {
- // FIXME: add cond level support here
- adj := passInlinableFuncToIndCallAdj
- cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
- adj = callResultRescoreAdj
+ adj := returnFeedsInlinableFuncToIndCallAdj
cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
} else if cs := rua.returnHasProp(rname, ResultAlwaysSameFunc); cs != nil {
- // FIXME: add cond level support here
- adj := passFuncToIndCallAdj
- cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
- adj = callResultRescoreAdj
+ adj := returnFeedsFuncToIndCallAdj
cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
+
}
}
}
if !ShouldFoldIfNameConstant(cond, namesUsed) {
return
}
- // FIXME: add cond level support here
- adj := passConstToIfAdj
- cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
- adj = callResultRescoreAdj
+ adj := returnFeedsConstToIfAdj
cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
}
func (rua *resultUseAnalyzer) getCallResultName(ce *ir.CallExpr) *ir.Name {
var callTarg ir.Node
- if sel, ok := ce.X.(*ir.SelectorExpr); ok {
+ if sel, ok := ce.Fun.(*ir.SelectorExpr); ok {
// method call
callTarg = sel.X
- } else if ctarg, ok := ce.X.(*ir.Name); ok {
+ } else if ctarg, ok := ce.Fun.(*ir.Name); ok {
// regular call
callTarg = ctarg
} else {