scala/scala — pull request #1382 by paulp (2012-09-22 17:29:31+00:00)
Title: Defanged dummy type arguments.

Spending a few hours on yet another tpe vs. tpeHK bug drove me
to finally go after the dragon in his cave. I created a separate
method for when you want to receive an invalid type which will
cause mysterious crashes later if it is out of your sight for five
seconds.

def tpeHK : Type // unapplied type params stay unapplied
def tpe_* : Type // unapplied type params applied as dummy args
def tpe : Type // if there are unapplied type params, ABORT

Actually it doesn't really abort, but I had it print a stack trace
during development so I could track down every site which blindly
calls tpe and see why they were doing it. Now it only admonishes
you under -Ydebug.

This way is a big step forward: you have to make a choice, which
is good, because if you choose not to decide you still have made a
choice, only mostly what you have chosen is bugs.