|
@@ -0,0 +1,42 @@
|
|
|
+@:headerClassCode('
|
|
|
+ static constexpr int64_t myInt64 = 10;
|
|
|
+')
|
|
|
+class Test {
|
|
|
+ public function new() {}
|
|
|
+
|
|
|
+ public function getInt64():cpp.Int64
|
|
|
+ return untyped __cpp__('myInt64');
|
|
|
+}
|
|
|
+
|
|
|
+class Main {
|
|
|
+ public static function main() {
|
|
|
+ var t = new Test();
|
|
|
+
|
|
|
+ #if (haxe > "4.2.5") // nightly rc
|
|
|
+
|
|
|
+ // 1.
|
|
|
+ var other:Int = t.getInt64(); // Warning : (WDeprecated) Implicit cast from Int64 to Int (32 bits) is deprecated. Use .toInt() or explicitly cast instead.
|
|
|
+
|
|
|
+ // 2. iterate implicitly truncated
|
|
|
+ for (i in 0...t.getInt64()) // ERROR: cpp.Int64 should be Int
|
|
|
+ trace(i);
|
|
|
+
|
|
|
+ // 3. iterate explicitly truncated
|
|
|
+ for (i in 0...t.getInt64().toInt()) // OK
|
|
|
+ trace(i);
|
|
|
+
|
|
|
+ // 4. iterate on int64-range
|
|
|
+ var start:cpp.Int64 = 0;
|
|
|
+ for (i in start...t.getInt64()) // ERROR: cpp.Int64 should be Int
|
|
|
+ trace(i);
|
|
|
+ #else // tested with 4.2.5
|
|
|
+
|
|
|
+ // truncate implicitly
|
|
|
+ var other:Int = t.getInt64(); // OK
|
|
|
+
|
|
|
+ // iterate implicitly truncated
|
|
|
+ for (i in 0...t.getInt64()) // OK
|
|
|
+ trace(i);
|
|
|
+ #end
|
|
|
+ }
|
|
|
+}
|