If I have 

```scala
lazy val isOverridden = s1.owner != s2.owner &&
                        (s1.overriddenSymbol(s2.owner) == s2 ||
                         s2.overriddenSymbol(s1.owner) == s1)
```

then `isSameMethod_overriddenValCountsAsSame` will fail. `isSameMethod_overriddenCountsAsSame` still succeeds though. The failing test is 

```scala
class A {
  def foo: String = "hi"
}
class B extends A {
  override val foo: String = "there"
}
```


I'm not sure if this is actually a problem with the presentation compiler. `s1` is the symbol of `def foo` and `s2` is the symbol of `val foo`. If I understand correctly then `s2.overriddenSymbol(s1.owner)` is supposed to return the symbol from `s1.owner` that is being overridden by `s2`, if such a symbol exists.

Now, I played around with this a bit.

- `println(s1.overriddenSymbol(s2.owner))` prints `value foo`. I would have expected this to return `NoSymbol`.  Additionally, `s1.overriddenSymbol(s2.owner) == s2` is actually false even though both are `value foo` symbols.
- `s2.overriddenSymbol(s1.owner)` returns `NoSymbol`. I would have expected this to return `s1`.

Is something broken?