Eliminated null checks based on the following observations:
- (this) cannot be null
- (new C) cannot be null
- literal is either null itself or non null
- fallsback to
tpe.isNotNull, which will eventually be true for non nullable types.
- in (a.call; a == null), the first call throws a NPE if a is null; the test can be removed.
RemoveUnnecessaryNullChecks ( )
val initializedVals : HashSet [ Symbol ]
def clear ( ) : Unit
Clears all the state of this optimisation, to be run last.
Does the actual Tree => Tree transformation.