getOverloadTypeChecker initialized an overloadTypeChecker from the pool. The returned object should be returned to the pool via its release method.
(o overloadSet, exprs ...Expr)
| 783 | // getOverloadTypeChecker initialized an overloadTypeChecker from the pool. The |
| 784 | // returned object should be returned to the pool via its release method. |
| 785 | func getOverloadTypeChecker(o overloadSet, exprs ...Expr) *overloadTypeChecker { |
| 786 | s := overloadTypeCheckerPool.Get().(*overloadTypeChecker) |
| 787 | n := o.len() |
| 788 | if n > cap(s.overloads) { |
| 789 | s.overloads = make([]overloadImpl, n) |
| 790 | s.params = make([]TypeList, n) |
| 791 | } else { |
| 792 | s.overloads = s.overloads[:n] |
| 793 | s.params = s.params[:n] |
| 794 | } |
| 795 | for i := 0; i < n; i++ { |
| 796 | got := o.get(i) |
| 797 | s.overloads[i] = got |
| 798 | s.params[i] = got.params() |
| 799 | } |
| 800 | s.exprs = append(s.exprs, exprs...) |
| 801 | return s |
| 802 | } |
| 803 | |
| 804 | func (s *overloadTypeChecker) release() { |
| 805 | for i := range s.overloads { |
no test coverage detected
searching dependent graphs…