AvailableTypes implements the Constant interface.
()
| 297 | |
| 298 | // AvailableTypes implements the Constant interface. |
| 299 | func (expr *NumVal) AvailableTypes() []*types.T { |
| 300 | if i, err := expr.AsInt64(); err == nil { |
| 301 | noOid := intIsOutOfOIDRange(DInt(i)) |
| 302 | intKind := expr.Kind() == constant.Int |
| 303 | switch { |
| 304 | case noOid && intKind: |
| 305 | return NumValAvailIntegerNoOid |
| 306 | case noOid && !intKind: |
| 307 | return NumValAvailDecimalNoFractionNoOid |
| 308 | case !noOid && intKind: |
| 309 | return NumValAvailInteger |
| 310 | case !noOid && !intKind: |
| 311 | return NumValAvailDecimalNoFraction |
| 312 | } |
| 313 | } |
| 314 | return NumValAvailDecimalWithFraction |
| 315 | } |
| 316 | |
| 317 | // DesirableTypes implements the Constant interface. |
| 318 | func (expr *NumVal) DesirableTypes() []*types.T { |
nothing calls this directly
no test coverage detected