parser: allow public types `pub type Foo Bar`
							parent
							
								
									b8f728590b
								
							
						
					
					
						commit
						cddfbf7395
					
				|  | @ -447,6 +447,7 @@ fn (p mut Parser) parse(pass Pass) { | ||||||
| 				.key_union, | 				.key_union, | ||||||
| 				.key_interface {	p.struct_decl() } | 				.key_interface {	p.struct_decl() } | ||||||
| 				.key_enum      {	p.enum_decl(false) } | 				.key_enum      {	p.enum_decl(false) } | ||||||
|  | 				.key_type      { p.type_decl() } | ||||||
| 				else { | 				else { | ||||||
| 					p.error('wrong pub keyword usage') | 					p.error('wrong pub keyword usage') | ||||||
| 				} | 				} | ||||||
|  | @ -734,6 +735,10 @@ fn (p mut Parser) const_decl() { | ||||||
| // `type myint int`
 | // `type myint int`
 | ||||||
| // `type onclickfn fn(voidptr) int`
 | // `type onclickfn fn(voidptr) int`
 | ||||||
| fn (p mut Parser) type_decl() { | fn (p mut Parser) type_decl() { | ||||||
|  | 	is_pub := p.tok == .key_pub | ||||||
|  | 	if is_pub { | ||||||
|  | 		p.next() | ||||||
|  | 	} | ||||||
| 	p.check(.key_type) | 	p.check(.key_type) | ||||||
| 	name := p.check_name() | 	name := p.check_name() | ||||||
| 	// V used to have 'type Foo struct', many Go users might use this syntax
 | 	// V used to have 'type Foo struct', many Go users might use this syntax
 | ||||||
|  | @ -757,6 +762,7 @@ fn (p mut Parser) type_decl() { | ||||||
| 		parent: parent.name | 		parent: parent.name | ||||||
| 		mod: p.mod | 		mod: p.mod | ||||||
| 		cat: .alias | 		cat: .alias | ||||||
|  | 		is_public: is_pub | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue