This should be a(n overly) low-level way to say
```
pre memberInfo sym
```
which should maybe be apply(pre) memberInfo sym as opposed to apply(pre memberInfo sym) - from such differences do NoSuchMethodErrors arise. Approximately: if sym.owner == pre.typeSymbol, then you want apply(pre memberInfo sym), because the method appears directly in pre and should have the erasure of the type as seen in pre. But otherwise, you want apply(pre) memberInfo sym, because sym is inherited and you need the erasure to match the inherited implementation, which the other one will not except by good fortune.

x.asSeenFrom(pre, sym.owner) also turns up in a bunch of other guises, so many of them that at some point I wrote "asSeenFromOwner" to reduce some of the duplication. See also: transform, transformInfo (ah "transform", beloved for its specificity almost as much as "normalize"), and thisInfo.