On one of my project, when I build the tests based on tink_unittest, I get the following warning (about 20 times):
Skip injecting AssertionBuffer because there is already an argument named "asserts"
The tests run fine, so it’s not blocking, just annoying to see a long list of warnings.
From what I’ve read, it probably occurs when the tink.SyntaxHub.use() macro is used several times (i.e. there is duplicate entries in my test.hxml file).
But my test.hxml file is quite simple and contains no duplicate entries:
I’ve checked the .haxelib folder: there is only one occurrence of the tink.SyntaxHub.use() macro (in the tink_syntaxhub package, v0.4.3). So I don’t understand why I have all these warnings.
My question: how can I determine (and fix) the source of these warnings?
Thanks @kevinresol, it worked… but the resolution was quite painful.
(Note: I’m using a bare install of Haxe on Windows, with Visual Studio Code as editor and PowerShell as command line, and my compilation target is currently PHP 8.0)
I started by replacing all libraries with the latest Git versions using haxelib: it did not work (i.e. tests OK but still the same warnings).
# Update the libraries
haxelib git tink_core https://github.com/haxetink/tink_core.git
haxelib git tink_web https://github.com/haxetink/tink_web.git
[...]
# Use the latest versions
--library tink_core:git:https://github.com/haxetink/tink_core.git
--library tink_web:git:https://github.com/haxetink/tink_web.git
[...]
So, I decided to give a try to lix package manager:
removed Haxe/Neko from my system path
removed the local .haxelib folder
installed lix
installed the dependencies with lix install gh:haxetink/<libname>
updated the Visual Studio Code settings because it tried to use haxe.exe instead of the haxe.cmd file generated by npm
ran the tests
I got an issue with the ansi dependency (used by the test reporter):
PHP Fatal error: Uncaught Error: Call to undefined method Attribute::Off() in C:\projects\my_app\lib\ANSI.php:598
Stack trace:
#0 C:\projects\my_app\lib\ANSI.php(770): ANSI::__hx__init()
The Attribute::Off() method exists: I suppose I have this issue because I’m on PHP 8.0 and I use the composer autoloader in a custom index.php file instead of the one generated by the Haxe compiler. But that has never been a problem so far!
To fix this issue, I had to:
modify the ANSI::__hx__init() method
modify the BasicReporter::init() method (from the tink_testrunner package): removed the ANSICON hack.
And finally, everything was fine! Of course, I must apply the ansi fix everytime I run a new compilation…
(I finally prefer to have a simple setup that works with a lot of warnings rather than the actual end result)