haxefoundation / haxe Goto Github PK
View Code? Open in Web Editor NEWHaxe - The Cross-Platform Toolkit
Home Page: https://haxe.org
Haxe - The Cross-Platform Toolkit
Home Page: https://haxe.org
[Google Issue #21 : https://code.google.com/p/haxe/issues/detail?id=21]
by [email protected], at 02/12/2009, 18:58:18
What steps will reproduce the problem?
What is the expected output? What do you see instead?
Expected: successful http POST and PUT.
Result: Thrown exception "Blocked"
What version of the product are you using? On what operating system?
HaXe 2.04 on Mac OsX
Please provide any additional information below.
In addition to the code below, I've tried setting a longer connection timeout, and closing the
request. Neither of these worked, nor did including the lines I've commented out.
var http:Http = new haxe.Http(url);
var dataLength:Int = if (data == null) 0; else data.length;
try { var hasPost:Bool = if(data == null) false; else { http.setPostData(data); true; } http.onError = failure; //http.setHeader("User-Agent", _curl.userAgent); //http.setHeader("Content-type", "text"); //http.setHeader("Host", url); http.setHeader("Content-length", Std.string(dataLength)); http.onData = function(output) { trace(output); success(output); } http.request(hasPost); }
catch (e:Dynamic) { failure(Std.string(e)); }
[Google Issue #46 : https://code.google.com/p/haxe/issues/detail?id=46]
by [email protected], at 15/01/2010, 20:15:15
What steps will reproduce the problem?
I created a function to check if a url is (1) not null, (2) not = "", and (3) verify that another
function returns true. For some reason this does not compile to PHP successfully. The haxe
compiler doesn't complain, but the server script reports the following:
PHP Parse error: syntax error, unexpected T_ISSET, expecting T_STRING in
/Users/pauldegoes/Documents/haXe/libraries/hHttp/test-
assets/www/lib/hHttp/AbstractHHttpImpl.class.php on line 175
What is the expected output? What do you see instead?
working php code
What version of the product are you using? On what operating system?
haxe 2.5 on Mac OSX
Please provide any additional information below.
Code causing bug:
private function proxyIsSet(proxyUrl:String):Bool { return if (proxyUrl != null && proxyUrl != "" && isValidQueryString(proxyUrl) == true) true else false; }
isValidQueryString accepts a url and returns a Bool
The following code works around the bug (extracting the value of isValidQueryString and
comparing it in the if statement)
private function proxyIsSet(proxyUrl:String):Bool { var isValidUrl:Bool = isValidQueryString(proxyUrl); return if (proxyUrl != null && proxyUrl != "" && isValidUrl == true) true else false; }
[Google Issue #36 : https://code.google.com/p/haxe/issues/detail?id=36]
by [email protected], at 07/01/2010, 13:02:27
platform : php
issue:
Warning: Unexpected character in input: '' (ASCII=92) state=1 in
Some.class.php(796) : eval()'d code on line 157
cause:
double backslash in string.split("").join("/").split(';;').join("/");
workaround:
String.fromCharCode(92)
[Google Issue #39 : https://code.google.com/p/haxe/issues/detail?id=39]
by [email protected], at 11/01/2010, 08:42:12
What steps will reproduce the problem?
What is the expected output? What do you see instead?
It should silently fail? Probably? (I know how bad is that...)
instead of:
uncaught exception: No file was uploaded
Called from php.Web::parseMultipart
Called from php.Web::getMultipart
Called from Main::main
What version of the product are you using? On what operating system?
haxe 2.04, haxe 2.05
linux, windows,
[Google Issue #33 : https://code.google.com/p/haxe/issues/detail?id=33]
by [email protected], at 05/01/2010, 19:20:06
What steps will reproduce the problem?
private function works(i) { i = 1; }
private inline function fails(i) { i = 1; } //<- won't compile
private function test() { for(i in 0...10) { works(i); fails(i); } }
What is the expected output? What do you see instead?
Compilation error: "Loop variable cannot be modified"
What version of the product are you using? On what operating system?
Haxe 2.04 on x86-64 Ubuntu 9.10
[Google Issue #18 : https://code.google.com/p/haxe/issues/detail?id=18]
by [email protected], at 27/11/2009, 08:00:46
What steps will reproduce the problem?
What is the expected output? What do you see instead?
Expected output is "Trรยคning", instead there is a javascript error
"malformed URI sequence".
What version of the product are you using? On what operating system?
Haxe 2.04 built from CVS around 2009-11-01.
Please provide any additional information below.
I've been doing some serializing between php and js, and found a problem
with for example the characters รยฅรยครยถ. Because of some incompability in the
encoding/decoding, urlDecode() in javascript fails with "malformed URI
sequence". I found the solution by using the function "unescape" before the
decodeURIComponent in StringTools.js. So the javascript part of
StringTools.urlDecode() should look like this:
return decodeURIComponent(unescape(s.split("+").join(" ")));
[Google Issue #47 : https://code.google.com/p/haxe/issues/detail?id=47]
by [email protected], at 18/01/2010, 16:58:47
The following haXe class:
package;
class Main { public static function main():Void { new Main(); } private var property(getProperty, null):Int; public function new():Void { property = 4; } private function getProperty():Int { return 0; } }
Results in the following AS3 code (when compiled targeting AS3):
package { import flash.Boot; public class Main { public function Main() : void { if( !flash.Boot.skip_constructor ) { this.property = 4; }} protected function get property() : int { return getProperty(); } protected var $property : int; public function getProperty() : int { return 0; } static public function main() : void { new Main(); } } }
Note the line in the constructor:
this.property = 4;
This does not work, as there is no property field. It could have been this:
this.$property = 4;
I'm using haXe compiler 2.05.
Workarounds for this problem include:
Manually adding the sigil ($) character.
Defining a setter, instead of using null.
Label suggestions: Type-Defect, Priority-Low, Platform-AS3.
Between 03:00:00 AM GMT - 12:00:00 AM GMT of May 28th, we will import our old Google Code issues. It's recommended that you stop watching this repository before this time, so you don't get flooded with notifications.
It will be safe to watch the repository again after 12:00:00 AM GMT
[Google Issue #56 : https://code.google.com/p/haxe/issues/detail?id=56]
by [email protected], at 04/02/2010, 14:48:46
What steps will reproduce the problem?
Type constraints allow comparisons for Floats, but not for Ints. The code
at the bottom will work if it is rewritten as:
class Test<T:Float>{...}
but does not work as is.
What is the expected output? What do you see instead?
I thought this should compile properly. Instead, this is the error:
> return this.x > x;
src/Test.hx:8: characters 9-19 : Cannot compare Test.T and Test.T
Please complete the following class with minimal code reproducing the
problem :
class Test<T:Int>{ private var x:T; public function new(x:T){ this.x = x; } public function compare(x:T){ return this.x > x; } public static function main(): Void { var f = new Test<Int>(5); } }
Please provide any additional information below.
[Google Issue #24 : https://code.google.com/p/haxe/issues/detail?id=24]
by [email protected], at 19/12/2009, 23:01:43
class TestInterface
{ }
class Foo implements IFoo
{ public function new() { } public function foo():Void { } }
interface IFoo
{ function foo():Void; }
package
{ import flash.display.MovieClip; public class TestInterface extends MovieClip { public function TestInterface() { var f:Foo = new Foo(); var i:IFoo = f; i.foo(); //error } } }
[Google Issue #41 : https://code.google.com/p/haxe/issues/detail?id=41]
by [email protected], at 11/01/2010, 19:19:20
What steps will reproduce the problem?
What is the expected output? What do you see instead?
This should install latest haXe(2.05) and neko(1.81?), instead i get:
Getting Local haXe Version
Getting Local Neko Version
Getting Latest haXe Version
Getting Latest Neko Version
Do you want to install haXe 2.5 ? [y/n] y
Downloading haxe-2.05-linux.tar.gz (100%))
ERROR = Invalid octal char
Called from neko/zip/Reader.hx line 279
Called from neko/zip/Reader.hx line 229
Called from neko/zip/Reader.hx line 128
Called from tools/hxinst/Main.hx line 310
Called from tools/hxinst/Main.hx line 316
Called from tools/hxinst/Main.hx line 264
Called from tools/hxinst/Main.hx line 85
What version of the product are you using? On what operating system?
OS is linux ubuntu 9.10
haXe 2.04 is installed.
Please provide any additional information below.
This was reproduced on several boxes.
[Google Issue #49 : https://code.google.com/p/haxe/issues/detail?id=49]
by [email protected], at 19/01/2010, 12:56:16
I think it's pretty useful, because you can simply redefine the textfield
used for tracing without overriding the whole trace logic...
[Google Issue #19 : https://code.google.com/p/haxe/issues/detail?id=19]
by john%[email protected], at 02/12/2009, 17:46:05
neko.Web, php.Web, etc., do not expose the HTTP method associated with the request (GET, POST,
PUT, DELETE).
[Google Issue #48 : https://code.google.com/p/haxe/issues/detail?id=48]
by [email protected], at 19/01/2010, 12:47:41
What steps will reproduce the problem?
In haxe/flash, e.g.:
trace(Type.getInstanceFields(flash.text.TextFormat));
What is the expected output? What do you see instead?
Expected output would be an array with the field names of the class.
Instead an empty array is returned.
What version of the product are you using?
haxe 2.05 compiled from SVN
Please provide any additional information below.
The describe() function in Type.hx only deals with "method" and "variable"
returned from flash.utils.describeType. The class fields of native Flash
classes are apparently returned as "accessor". Adding "accessor" to
describe() works fine for me. Patch attached.
[Google Issue #55 : https://code.google.com/p/haxe/issues/detail?id=55]
by [email protected], at 04/02/2010, 12:52:02
Explanation of problem and how to fix:
http://lists.motion-twin.com/pipermail/haxe/2010-January/033264.html
Test I did today confirms that a separate instance of a function is created
for each subsequent curry of the same method:
class Test { static function main() {} function method() {} function method2() {var f = method;} }
JavaScript:
Test.prototype.method2 = function() { var f = $closure(this,"method"); }
js.Boot.__closure = function(o,f) {
var m = o[f];
if(m == null) return null;
var f1 = function() { return m.apply(o,arguments); }f1.scope = o; f1.method = m; return f1;
Neko:
@ tmp.method2 = function() { var f = { var @tmp = this, @fun = @tmp.method; @closure0(@tmp,@fun); } ; return null; }
@ closure0 = function(@ this,@ fun)
if ( @ fun == null )
null
else
function() { this = @this; @fun(); }
Current Printer implementation
https://github.com/HaxeFoundation/haxe/blob/development/std/haxe/macro/Printer.hx#L153
output Binary Operations like "a-b" instead of "a - b" (a--10) instead of (a - -10)
[Google Issue #20 : https://code.google.com/p/haxe/issues/detail?id=20]
by [email protected], at 02/12/2009, 18:56:36
What steps will reproduce the problem?
What is the expected output? What do you see instead?
Expected: successful http POST and PUT.
Result: Thrown exception "Blocked"
What version of the product are you using? On what operating system?
HaXe 2.04 on Mac OsX
Please provide any additional information below.
In addition to the code attached, I've tried setting a longer connection timeout, and closing the
request. Neither of these worked, nor did including the lines I've commented out.
[Google Issue #22 : https://code.google.com/p/haxe/issues/detail?id=22]
by [email protected], at 04/12/2009, 03:56:40
there is a conflict with the php keyword 'final' when calling a super.final()
override public function final()
{ super.final(); }
becomes
public function hfinal()
{ super::final(); }
it should be super::hfinal
[Google Issue #53 : https://code.google.com/p/haxe/issues/detail?id=53]
by [email protected], at 04/02/2010, 03:08:06
This seemed to be working fine with 2.04, but 2.05 has problems.
You get the following error:
uncaught exception: mysql_affected_rows(): supplied argument is not a valid
MySQL-Link resource (errno: 2) in
C:\DEVELOPMENT\lightcreative_arenaint\www\lib\php\db_Mysql\MysqlResultSet.class.php
at line #14mysql_affected_rows(): supplied argument is not a valid
MySQL-Link resource
in file:
C:\DEVELOPMENT\lightcreative_arenaint\www\lib\php\db_Mysql\MysqlResultSet.class.php
line 14
#0
C:\DEVELOPMENT\lightcreative_arenaint\www\lib\php\db_Mysql\MysqlResultSet.class.php(14):
hx_error_handler(2, 'mysql_affected...', 'C:\DEVELOPMENT...', 14, Array)
#1 C:\DEVELOPMENT\lightcreative_arenaint\www\lib\Test.class.php(6):
php_db__Mysql_MysqlResultSet->getLength(true)
#2 C:\DEVELOPMENT\lightcreative_arenaint\www\lib\Main.class.php(8):
Test->__construct()
#3 C:\DEVELOPMENT\lightcreative_arenaint\www\index.php(11): Main::main()
#4 {main}
when trying to do an UPDATE operation.
What steps will reproduce the problem?
var cnx = Mysql.connect([details]);
var affected = cnx.request("UPDATE test
SET var
='y' WHERE id=1").length);
trace(affected);
What is the expected output? What do you see instead?
An integer of how many rows are affected.
What version of the product are you using? On what operating system?
2.05 / Windows (Vista 64) / PHP 5.2.6
Please provide any additional information below.
I found I could fix it by changing a line in the library MysqlResultSet
class in php/db/Mysql.hx file. You just have to get rid of the result set
itself in the following line:
return untyped call("mysql_affected_rows", __r);
and change to:
return untyped call("mysql_affected_rows");
I've had this problem before when doing straight PHP, that if you give an
link resource to this function it complains. Leaving it out means it just
uses the last one used. I guess my fix would cause hard to find errors for
people who are connecting to more than one database so another fix should
probably be found.
We have to update install.ml to work with git, I guess.
[Google Issue #50 : https://code.google.com/p/haxe/issues/detail?id=50]
by [email protected], at 26/01/2010, 21:50:28
enum FooEnum
{ A; B; C; }
class Foo
{ public static function main():Void { var x = FooEnum.A; switch (x) { case FooEnum.A: } } }
Compile with haxe -swf9 foo.swf -main Foo
This compiles without compiler warning. But according to the documentation,
there should be a 'Some constructors are not matched: C,B' message. The
message only appears for:
switch (x)
{ case A: }
[Google Issue #35 : https://code.google.com/p/haxe/issues/detail?id=35]
by [email protected], at 07/01/2010, 10:59:29
The following code fails to compile:
class Foo
{ static var _app:Foo; public static function main():Void { var app = new Foo(); } public function new() { var node:B<Int> = new B<Int>(); var f = function(node:A<Int>):Void {}; node.foo(f); } }
class A<T> implements haxe.rtti.Generic
{ public function new() {} public function foo(func:A<T>->Void):Void {} }
class B<T> extends A<T>
{ public function new() { super(); } }
compile with:
haxe -swf9 foo.swf -main Foo
output:
Foo.hx:16: characters 13-14 : node : A_Int -> Void should be A<Int> -> Void
Foo.hx:16: characters 13-14 : A<Int> should be A_Int
Foo.hx:16: characters 13-14 : For function argument 'func'
I'm not sure if this is a bug - it works when the function f that is passed
to foo is explicitly typed to Dynamic so compiler skips type checking.
[Google Issue #51 : https://code.google.com/p/haxe/issues/detail?id=51]
by [email protected], at 26/01/2010, 22:24:13
What steps will reproduce the problem?
What is the expected output? What do you see instead?
Error : Buffer.add: cannot grow buffer
Please provide any additional information below.
Found the error trying to embed 38mb of .tga files (ranging from 812bytes to
2.0mb individually - 127 files in total), but tested it using mp3's and the
~12mb limit is the same. Running svn 2.05 version of haxe.
[Google Issue #28 : https://code.google.com/p/haxe/issues/detail?id=28]
by [email protected], at 28/12/2009, 08:02:20
What steps will reproduce the problem?
What is the expected output? What do you see instead?
I expect working as3 code. Various issues were reported on ML, none was
addressed.
http://lists.motion-twin.com/pipermail/haxe/2009-November/031485.html
http://lists.motion-twin.com/pipermail/haxe/2009-November/031492.html
http://lists.motion-twin.com/pipermail/haxe/2009-November/031493.html
http://lists.motion-twin.com/pipermail/haxe/2009-November/031494.html
http://lists.motion-twin.com/pipermail/haxe/2009-November/031497.html
What version of the product are you using? On what operating system?
2.04, WinXP
Please provide any additional information below.
[Google Issue #27 : https://code.google.com/p/haxe/issues/detail?id=27]
by john%[email protected], at 26/12/2009, 05:12:03
The JavaScript target does not expose any method for creating a text node.
[Google Issue #25 : https://code.google.com/p/haxe/issues/detail?id=25]
by [email protected], at 20/12/2009, 18:18:42
Using haXe/flash9 :
var foo = try{ 0; }catch(e:Dynamic){ 1; } // works fine with local var
foo = try{ 0; }catch(e:Dynamic){ 1; } // throws : Cannot compile try/catch
as a right-side expression in Flash9 (with class var)
[Google Issue #37 : https://code.google.com/p/haxe/issues/detail?id=37]
by [email protected], at 09/01/2010, 11:43:25
What steps will reproduce the problem?
Create a new Haxe/PHP project with the attached file.
What is the expected output? What do you see instead?
From the mock data, the expected output should be two traces:
true
abcde
But when using cast to any specified type within the Lambda functions, the
following PHP error appears: "Parse error: syntax error, unexpected
T_CLASS" and the Lambda function returns false.
What version of the product are you using? On what operating system?
Haxe 2.04 compiled from SVN with cygwin 2009-01-07. WinXP.
Please provide any additional information below.
By removing the cast type, making it an unsafe cast, it works.
[Google Issue #38 : https://code.google.com/p/haxe/issues/detail?id=38]
by [email protected], at 10/01/2010, 16:15:13
-exclude <file> works for classes but not for interfaces
tested with haxe version 2.05
The implementation of StringBuf.length on neko is not ideal yet. I suppose this requires some native support:
https://github.com/HaxeFoundation/haxe/blob/development/std/neko/_std/StringBuf.hx#L32
[Google Issue #16 : https://code.google.com/p/haxe/issues/detail?id=16]
by [email protected], at 27/11/2009, 06:49:12
trace("X");
causes:
uncaught exception: Parameter 1 to _hx_lambda::execute2() expected to
be a reference, value given (errno: 2) in
D:\DEVELOPMENT\coah\www\lib\haxe\Log.class.php at line #5Parameter 1
to _hx_lambda::execute2() expected to be a reference, value given in file:
D:\DEVELOPMENT\coah\www\lib\haxe\Log.class.php line 5 #0 [internal
function]: _hx_error_handler(2, 'Parameter 1 to ...',
'D:\DEVELOPMENT...', 5, Array)
#1 D:\DEVELOPMENT\coah\www\lib\haxe\Log.class.php(5):
call_user_func_array(Array, Array)
#2 D:\DEVELOPMENT\coah\www\lib\Test.class.php(7): haxe_Log::trace('X',
Object(_hx_anonymous))
#3 D:\DEVELOPMENT\coah\www\lib\Main.class.php(7): Test->__construct()
#4 D:\DEVELOPMENT\coah\www\index.php(11): Main::main()
#5 {main}
[Google Issue #42 : https://code.google.com/p/haxe/issues/detail?id=42]
by [email protected], at 12/01/2010, 20:39:36
package;
import haxe.Int32;
class Static { public static function trace (i : Int) : Void { trace("foo"); } }
typedef TStatic = Static;
using Main.TStatic;
class Main { public static function main ():Void { PointStatic.trace(5); // works 5.trace(); // fails to compile with "Int has no field trace" } }
What version of the product are you using? On what operating system?
Version 2,05,1
Please provide any additional information below.
I experienced this while using the Std Class Int32, it works perfectly with
all targets except the cpp target (using a typedef for Int32).
[Google Issue #45 : https://code.google.com/p/haxe/issues/detail?id=45]
by waneck, at 14/01/2010, 22:07:48
What steps will reproduce the problem?
e.g.
class Main
{ static function main() { trace(Test.variableInjection); trace(Test.methodInjection()); } }
extern class Test
{ public static inline var variableInjection:Int = 0; public static inline function methodInjection():Int { return 0; } }
What is the expected output? What do you see instead?
It is expected to see 0 and 0 traced. Instead, flash throws a ReferenceError:
ReferenceError: Error #1065: Variable Test is not defined.
at MethodInfo-72()[C:\Program Files\Motion-Twin\haxe/std/Std.hx:175]
at flash::Boot()[C:\Program Files\Motion-Twin\haxe/std/flash9/Boot.hx:86]
The code will work, though, if variableInjection is eliminated from the
code (the method injection works as expected)
What version of the product are you using? On what operating system?
haXe release 2.05
[Google Issue #30 : https://code.google.com/p/haxe/issues/detail?id=30]
by [email protected], at 29/12/2009, 20:51:51
The sqlite_x() functions generated for PHP is only compatible with the old
SQLite 2 databases, while Neko supports v3.
Attached is a drop-in replacement for std/php/db/Sqlite.hx that uses
PHP-PDO objects to communicate with the SQLite 3 database. (Version 2 can
be used through an argument in the constructor).
[Google Issue #32 : https://code.google.com/p/haxe/issues/detail?id=32]
by [email protected], at 03/01/2010, 22:38:08
class Foo
{ inline public static function foo(?p1:Bool = false, ?p2:Int = 0):Void { } public function new() { foo(false); } }
error: In Flash9, null can't be used as basic type Int
compile with: haxe -swf9 Foo.swf Foo --no-inline
works if --no-inline is omitted or the inline keyword is removed from foo().
[Google Issue #54 : https://code.google.com/p/haxe/issues/detail?id=54]
by [email protected], at 04/02/2010, 10:41:21
class Test { static function main() { for( i in 0...1 ) { _g = 0; trace("infinite loop"); } } }
Produces:
Test.main = function() { var _g = 0; while(_g < 1) { var i = _g++; _g = 0; haxe.Log.trace("infinite loop",{ fileName : "Test.hx", lineNumber : 6, className : "Test", methodName : "main"}); } }
Since the HaXe documentation states that var i should not be available
outside the function and that modification of i should not affect the
iteration, then the only possible fix for this bug is that HaXe must detect
if _g is in use within the loop and use a different name.
Note I also clarified in the documentation that not only is the
modification of the iteration variable not saved, that also it does not
affect the number of iterations (which might be a source of confusion for
integer iteration case with ...):
[Google Issue #29 : https://code.google.com/p/haxe/issues/detail?id=29]
by [email protected], at 29/12/2009, 17:24:57
The following code fails to compile (latest svn build):
class Main
{ public static function main():Void { new Foo<Int>(); } }
class Foo<T> implements haxe.rtti.Generic
{ var _a:Array<T>; public function new() { _a = new Array<T>(); } inline public function foo1(i:Int):T { return foo3(i); } public function foo2(x:Foo<Float>):Void { } inline function foo3(i:Int):T { return _a[i]; } }
compile with haxe -swf9 -main Main
error:
Foo.hx:20: characters 11-15 : Unknown identifier : foo3
Foo.hx:18: lines 18-21 : Foo.T should be Void
compiles only if foo2 is declared before foo1 or after foo3 or
foo2(x:Foo<Float>) is changed to foo2(x:Foo<T>) or haxe.rtti.Generic is
removed.
[Google Issue #14 : https://code.google.com/p/haxe/issues/detail?id=14]
by [email protected], at 23/11/2009, 22:20:59
What steps will reproduce the problem?
What is the expected output?
awesome 3d goodness yay
What do you see instead?
VerifyError: Error #1068: int and Number cannot be reconciled.
at MethodInfo-74()
at h3d.tools::ObjReader/parseModels()
at h3d.tools::ObjReader/parseMtl()
at MethodInfo-558()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
What version of the product are you using? On what operating system?
$ haxe -v
Haxe Compiler 2.04 - (c)2005-2009 Motion-Twin
Please provide any additional information below.
purple monkey dishwasher
[Google Issue #40 : https://code.google.com/p/haxe/issues/detail?id=40]
by [email protected], at 11/01/2010, 17:58:03
What steps will reproduce the problem?
1.
<code haxe>
var d = new flash.utils.TypedDictionary<String, Dynamic>(true);
d.set("key1", new flash.display.Sprite()); // Exception thrown
d.get("key1"); //Exception thrown
</code>
Additionally, the fault may have nothing to do whether one uses weak or
strong keys, and possibly is also applicable to certain other key types in
addition to 'String' and 'Int' which are tested to fail.
It is expected that the TypedDictionary class behaves as the native Flash
Player Dictionary class plus its provision of strict type checking for
allowed key and value types, courtesy haXe. Regardless of type checking
(indeed it appears to play no role), the API should allow for seting values
for keys as specified by class key type parameter (the first - here
'String') and getting values for both existing and non-existing keys. A
null value should be returned when a key-value pair is not found.
Instead at least the two API methods - 'get', 'set' - throw exceptions
either when value not found for a key, or when trying to set a value for a
key, situations considered non-exceptional for the class applications.
Similiar errors apply to other methods such as 'exists'.
haXe checked out and built from CVS, version 2.04, running on Ubuntu 9.10
x86 32-bit.
In Adobe LiveDocs for the flash.utils.Dictionary class documentation at
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Dictionary.html
the class is defined as, quote:
"public dynamic class Dictionary"
which per Flash Player suggests that the class is not 'sealed' (see
additional FP documentation(s)), and thus allows for "loose" bracket syntax
for accessing properties, indeed a requirement for the Dictionary class, as
its documentation later explains - sealed classes do not allow adding
properties to class objects at runtime, something that forms the very basis
of Dictionary functionality. So, for the haXes own TypedDictionary class
definition which extends and absolutely relies on the Dictionary class to
work, it needs to ALSO be defined as such "dynamic" class. Obviously, in
haXe this is done with the "implements Dynamic" syntax.
Indeed when the class definition file is patched to include the above
correction, the TypedDictionary<K, T> behaves as expected in Flash Player,
adding the useful haXe-assisted strict key and value type checking, both
strong and weak references.
abstract A<T>(T) from T to T {
public function new(x:T) this = x;
/* this doesn't help either :D
@:op(A==B) public inline static function eq<T>(a:A<T>, b:A<T>) {
var at:T = a;
var bt:T = b;
return at == bt;
}
*/
}
abstract B(Int) from Int to Int {
public function new(x:Int) this = x;
@:op(A==B) public inline static function eq(a:B, b:B) {
var ai:Int = a;
var bi:Int = b;
return (ai - bi) % 2 == 0;
}
}
class Main {
static function main() {
var x:B = 1;
var y:B = 2;
var z:B = 3;
var w:B = 4;
trace([x==y, x==z, x==w, y==z, y==w, z==w]);
var x:A<B> = x;
var y:A<B> = y;
var z:A<B> = z;
var w:A<B> = w;
trace([x==y, x==z, x==w, y==z, y==w, z==w]);
}
}
traces:
[false,true,false,false,true,false]
[false,false,false,false,false,false]
waaah!!
Since '==' is inlined, compiler should then be able to use the (concrete) T to check for overloads when T is abstract.
[Google Issue #26 : https://code.google.com/p/haxe/issues/detail?id=26]
by [email protected], at 21/12/2009, 22:56:18
Say you have this Main class:
package;
using Shortcut;
class Main { public static function main():Void { new Main(); } public function new():Void { this.traceCheer(); } }
and this Shortcut class:
package;
class Shortcut { public static function traceCheer(main:Main):Void { trace("Yay!"); } }
That will work fine. "Yay!" will be traced, as the main class calls the
traceCheer method in the Shortcut class with a little help of the using syntax.
However, if you'd remove the "this.":
public function new():Void { traceCheer(); }
you will get the following error:
Unknown identifier : traceCheer
This is not what I would expect. It means "real" methods and methods
injected by the using syntax require a different way of calling (in
exceptional cases). Not a big issue, more of a minor consistency problem.
Hi!
When i'm working with macros i'm often get this error without any additional information. Could you please extends this error with some info about what happens for better debug?
[Google Issue #52 : https://code.google.com/p/haxe/issues/detail?id=52]
by [email protected], at 01/02/2010, 15:10:40
I have a User class that extends php.db.Object
All works fine until I try to use haxe.Serializer.run( myUser );
It throws :
Fatal error: Access to undeclared static property: User::$tname in
dev\lib\php\Boot.class.php(278) : eval()'d code on line 1
class Test { static function main() { var cnx = php.db.Mysql.connect( { user : "root", socket : null, port : 3306, pass : "", host : "localhost", database : "fk" } ); php.db.Manager.cnx = cnx; php.db.Manager.initialize(); var ul = User.manager.search( { name : "test", pass : "pass" } ); trace( ul.first() ); // OK var sUser = haxe.Serializer.run( ul ); // FATAL ERROR } }
[Google Issue #15 : https://code.google.com/p/haxe/issues/detail?id=15]
by john%[email protected], at 24/11/2009, 17:03:08
What steps will reproduce the problem?
class Main { function foo(d:Dynamic<String>) { } function bar() { foo({a: "string"}); } }
What is the expected output? What do you see instead?
The program is expected to compile. However, it does not compile because an anonymous object
all of whose values are strings does not fit Dynamic<String> (even though it should).
What version of the product are you using? On what operating system?
Problem happens on all OS.
Please provide any additional information below.
[Google Issue #13 : https://code.google.com/p/haxe/issues/detail?id=13]
by [email protected], at 23/11/2009, 15:52:24
when using the adobe compc utility for creating swc files the parameter
names are defined if debug=true, otherwise the parameter names are
param0...paramN. with the latest HaXe, the parameter names are always
param0...paramN, regardless whether the debug flag is set or not.
[Google Issue #31 : https://code.google.com/p/haxe/issues/detail?id=31]
by [email protected], at 03/01/2010, 15:46:38
What steps will reproduce the problem?
Compile the following for Flash9:
class TestDefaultArguments
{ public function new(); static function f(?a : Null<Int> = 1, ?pos : haxe.PosInfos) { return a; } public function testWithPosInfos() { Assert.equals(1, f()); } }
What is the expected output? What do you see instead?
The assertion should be true but Null is returned instead.
[Google Issue #17 : https://code.google.com/p/haxe/issues/detail?id=17]
by [email protected], at 27/11/2009, 06:57:58
class Main
{ public static inline var data:Array <String> = ["0", "1", "2"]; public static function main() { trace(data[1]); } }
breaks with haxe 2.04.
removing the inline makes it work
[Google Issue #43 : https://code.google.com/p/haxe/issues/detail?id=43]
by [email protected], at 13/01/2010, 09:11:40
What steps will reproduce the problem?
1.run haxe --gen-hx-classes on a swf which contains fl.motion.MotionBase
(Tweening)
2.try compiling the MotionBase.hx generated class
3.
What is the expected output? What do you see instead?
It seems that --gen-hx-classes does not qualify the XML class with the
flash.xml prefix.
So that the compiler is resolving it has haxe.std.XML which is
complaining about not defining type XML.
characters 1-32 : Module XML does not define type XML
Adding the flash.xml prefix in the generated classes seems to fix the
problem.
What version of the product are you using? On what operating system?
haXe Compiler 2.05 - (c)2005-2010 Motion-Twin
WindowsXP
Please provide any additional information below.
[Google Issue #44 : https://code.google.com/p/haxe/issues/detail?id=44]
by [email protected], at 14/01/2010, 03:00:12
What steps will reproduce the problem?
The following Breaks.as (attached)
package { public class Breaks { static public function f() : void { } public function f() : void { } } }
What is the expected output? What do you see instead?
Haxe should compile ok
Haxe breaks in haxe compiler.
What version of the product are you using? On what operating system?
2.0.4 on Windows XP.
Please provide any additional information below.
Haxe importing flash .swfs in broken, it generates bad .hx from the .swf:
In Actionscript you may have a method with the same name as a static
method in the class. This is not valid in Haxe but haxe --gen-hx-classes
outputs a .hx that will not compile. FieldBreaks.as/FieldBreaks.swf have
the same problem but with fields rather than methods.
Please fix ASAP as I have a project that depends on importing .swfs like
those attached.
Yours Sincnerely,
Hank Inaworken.
[Google Issue #23 : https://code.google.com/p/haxe/issues/detail?id=23]
by [email protected], at 09/12/2009, 14:16:46
In a switch statement, if using the full constructor's path in a case statement,
it will never be triggered.
[Google Issue #34 : https://code.google.com/p/haxe/issues/detail?id=34]
by [email protected], at 06/01/2010, 13:58:58
What steps will reproduce the problem?
Make a PHP project with the attached hx file as main.
What is the expected output? What do you see instead?
Expected is to see first a trace of 'test', then plain php output 'test'.
Instead a PHP error, "Undefined class constant 'hprint' in
...TestPrint.class.php" is shown. Same problem when changing callback to
php.Lib.println.
What version of the product are you using? On what operating system?
HaXe compiled from SVN with cygwin 2010-01-06. WinXP.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.