You can avoid the warning by having the enum start at 0:
    
    
    type MouseButton* = enum
      mbNone
      mbLeft = 1
      mbMiddle = 2
      mbRight = 3
    

Since enum default to the value 0, and your enum starts at 1, the default value 
of your enum is invalid: 
    
    
    type MouseButton* = enum
      mbLeft = 1
      mbMiddle = 2
    
    var ml : MouseButton
    echo ml #> 0 (invalid data!)
    

Actually, I think that you can make it start from whatever value you want, eg. 
-23, as long as your enum contains a value for 0, but I haven't tested it.

(note that even if you start from a negative number, the default value of the 
enum is the one that corresponds to 0, not the first one in the list)

Reply via email to