fmt,parser: prevent unknown module error (#10004)
							parent
							
								
									99a2fd76c8
								
							
						
					
					
						commit
						8c44873674
					
				|  | @ -3,6 +3,7 @@ module module_fmt | |||
| pub struct MyStruct { | ||||
| mut: | ||||
| 	value int | ||||
| 	foo   mod.Foo | ||||
| } | ||||
| 
 | ||||
| pub fn (m MyStruct) foo() bool { | ||||
|  |  | |||
|  | @ -342,7 +342,7 @@ pub fn (mut p Parser) parse_any_type(language ast.Language, is_ptr bool, check_d | |||
| 			p.next() | ||||
| 			p.check(.dot) | ||||
| 		} | ||||
| 		if !p.known_import(mod) { | ||||
| 		if !p.known_import(mod) && !p.pref.is_fmt { | ||||
| 			mut msg := 'unknown module `$mod`' | ||||
| 			if mod.len > mod_last_part.len && p.known_import(mod_last_part) { | ||||
| 				msg += '; did you mean `$mod_last_part`?' | ||||
|  | @ -352,9 +352,10 @@ pub fn (mut p Parser) parse_any_type(language ast.Language, is_ptr bool, check_d | |||
| 		} | ||||
| 		if mod in p.imports { | ||||
| 			p.register_used_import(mod) | ||||
| 			mod = p.imports[mod] | ||||
| 		} | ||||
| 		// prefix with full module
 | ||||
| 		name = '${p.imports[mod]}.$p.tok.lit' | ||||
| 		name = '${mod}.$p.tok.lit' | ||||
| 		if p.tok.lit.len > 0 && !p.tok.lit[0].is_capital() { | ||||
| 			p.error('imported types must start with a capital letter') | ||||
| 			return 0 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue