HaxeFoundation / HaxeFoundation/haxe
TypeDefinitions generated in OnTypeNotFound handler don't respect empty package.
- Dominant language
- Haxe
- Stars
- 6.9k
- Forks
- 715
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 11
Description
[OnTypeNotFoundPackageIssue.zip](https://github.com/HaxeFoundation/haxe/files/12791731/OnTypeNotFoundPackageIssue.zip)
Haxe 4.3.1
The following induces `TypeNotFound` to look for `pack.String`.
```bash
src/Plugin.hx:3: use plugin
src/GenerateTypeDefinition.hx:11: pack.TypeNotExist
src/GenerateTypeDefinition.hx:13: ok
src/GenerateTypeDefinition.hx:32: package pack;
class TypeNotExist {
function react() {
final t:String = "hello";
}
}
src/GenerateTypeDefinition.hx:11: pack.String
src/GenerateTypeDefinition.hx:11: pack.StdTypes
```
```haxe
public function apply(type_name):Null{
trace(type_name);
return if(type_name == "pack.TypeNotExist"){
trace('ok');
final expr = macro {final t:String = "hello";};
final f : Function = {
args : [],
ret : null,
expr : expr
}
final field : Field = {
name : "react",
pos : Context.currentPos(),
kind : FFun(f),
}
final tdef : TypeDefinition = {
pack : ['pack'],
name : 'TypeNotExist',
pos : Context.currentPos(),
kind : TDClass(),
fields : [field]
};
trace(new haxe.macro.Printer().printTypeDefinition(tdef));
tdef;
}else{
null;
}
```
Contributor guide
Assessment
This issue has not been assessed yet.