(Type declared, Type selector)
| 3381 | } |
| 3382 | |
| 3383 | public Type refine(Type declared, Type selector) { |
| 3384 | // FIXME: this method is a hack for now really, until such time as I resolve |
| 3385 | // issues around subtyping and how to create proper type morphisms, etc. |
| 3386 | Type.Selector s = TypeSelector.create(declared, selector); |
| 3387 | if (s == Type.Selector.BOTTOM) { |
| 3388 | // Something went wrong |
| 3389 | return declared; |
| 3390 | } else { |
| 3391 | return s.apply(declared); |
| 3392 | } |
| 3393 | } |
| 3394 | |
| 3395 | /** |
| 3396 | * Determine whether a given expression calls an impure method, dereferences a |
no test coverage detected