50 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
private enum GnarlyEnum
 | 
						|
{
 | 
						|
   e0;
 | 
						|
   GnarlyEnum;
 | 
						|
   narlyEnum;
 | 
						|
   Dynamic;
 | 
						|
   getFixed(i:Int);
 | 
						|
   getInt;
 | 
						|
   init(i:Int);
 | 
						|
   String;
 | 
						|
   index(i:Int);
 | 
						|
   const;
 | 
						|
   super(i:Int);
 | 
						|
   tag(i:Int);
 | 
						|
   getTag(i:Int);
 | 
						|
   getObject(i:Int);
 | 
						|
}
 | 
						|
 | 
						|
class TestKeywords extends haxe.unit.TestCase
 | 
						|
{
 | 
						|
   public function new() super();
 | 
						|
 | 
						|
   //public function getGnarly() { return GnarlyEnum.super(1); }
 | 
						|
   public function getGnarly() { return Dynamic; }
 | 
						|
 | 
						|
   public function testEnum()
 | 
						|
   {
 | 
						|
      var count = 
 | 
						|
      switch( getGnarly() )
 | 
						|
      {
 | 
						|
         case e0: 1;
 | 
						|
         //case GnarlyEnum: 1;
 | 
						|
         case narlyEnum: 1;
 | 
						|
         case Dynamic: 3;
 | 
						|
         case getFixed(i): 1;
 | 
						|
         case getInt: 1;
 | 
						|
         case init(i): 1;
 | 
						|
         case String: 1;
 | 
						|
         case index(i): 1;
 | 
						|
         case const: 1;
 | 
						|
         //case GnarlyEnum.super(i): 2;
 | 
						|
         case tag(i): 1;
 | 
						|
         case getTag(i): 1;
 | 
						|
         case getObject(i): 1;
 | 
						|
         default: 0;
 | 
						|
      }
 | 
						|
      assertTrue(count==3);
 | 
						|
   }
 | 
						|
}
 |