abstract class A {
  bar()
  private val a = 5
  def foo() = a
  def bar(): Unit
}

class M extends A {
  def bar() = promote(this)    // error
  def promote(m: M) = m.foo()
}

Add another neg test for promotion of ThisRef
Add another neg test for promotion of ThisRef
