Example below compiles just fine (apart from deprecation warnings) in haxe 4.1.5 but fails to compile in 4.2.2 with following error:
src/MainMinimal.hx:38: lines 38-43 : error: tink.sql.Id<Room> should be Int
src/MainMinimal.hx:38: lines 38-43 : ... have: tink.Promise<Array<{ id: tink.sql.Id<...> }>>
src/MainMinimal.hx:38: lines 38-43 : ... want: tink.Promise<Array<{ id: Int }>>
Minimal example:
package;
import tink.sql.drivers.MySql;
import tink.sql.Types;
using tink.CoreApi;
typedef User = {
@:primary @:autoIncrement @:optional final id:Id<User>;
}
typedef Room = {
@:primary @:autoIncrement @:optional final id:Id<Room>;
final user:Id<User>;
}
typedef MyData = {
final user:Int;
final id:Int;
}
@:tables(User,Room)
class Db extends tink.sql.Database {}
class MainMinimal {
public static function main() new MainMinimal();
var db:Db;
public function new() {
var driver:MySql = new MySql({
user: 'root',
password: '',
host: '127.0.0.1',
port: 3306
});
db = new Db('test', driver);
test().eager();
}
public function test():Promise<Array<MyData>>
return db.Room.select({
id: Room.id,
user: Room.user
})
.where(Room.id > 10)
.all();
}
Example below compiles just fine (apart from deprecation warnings) in haxe 4.1.5 but fails to compile in 4.2.2 with following error:
Minimal example: