HaxeFoundation / HaxeFoundation/haxe

TypeDefinitions generated in OnTypeNotFound handler don't respect empty package.

Open
#11,322 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.