questions on nullability

Burak Emir Burak.Emir at
Thu Jun 15 01:53:54 PDT 2006

Hi there,

The "Nullability" proposal reads

Classes can be defined to be non-nullable by default via a special 
declaration syntax:

class C! { ... }

This annotation does not imply anything about subclasses of C; they are 
still nullable by default unless declared non-nullable.

This triggers some questions.
a) can I write

var c: C = new C // (1), or
var c: C! = new C // (2)

or are both equivalent (3)? IMHO explicit is better than implicit.

b) assuming only (3) is allowed (it doesn't really matter here), 
consider the subclass mess:

class D extends C! {} // subclass can still be nullable
var c: C
var d: D = null
c = d

As I understand the proposal, this should not be allowed, because C does 
not include null, but D does?

c) (unrelated to above) how can one turn a value of type A into a value 
of type A! in order to guide the typechecker? a cast? a preceding 


Burak Emir

More information about the Es4-discuss mailing list