Skip to content

Instantly share code, notes, and snippets.

class MyMacros {
macro public static function configX (a:Expr):ExprFunc<Void->Expr> {
return function ():Expr {
return macro ($a);
}
}
macro public static function configPlus (a:Expr):ExprFunc<Expr->Expr> {
return function (x:Expr):Expr {
return switch (Type.typeof(v)) {
case TObject, TClass(_): true;
case _ : false;
}
// becomes something like:
_g = Type.typeof(v);
return switch ((@:exhaustive _g.index)) {
interface T1<X> {
public function foo <A>(a:X, c:A):Void;
}
abstract A1<X>(X) {
public function new (x:Dynamic) this = x;
}
class U1 implements T1<A1<Dynamic>> {
Fatal error: exception Not_found
Raised at file "hashtbl.ml", line 97, characters 23-32
Called from file "gencommon.ml", line 4544, characters 30-60
Called from file "type.ml", line 1670, characters 27-31
Called from file "type.ml", line 1654, characters 11-15
Called from file "type.ml", line 1713, characters 26-30
Called from file "type.ml", line 1672, characters 32-38
Called from file "type.ml", line 1694, characters 11-15
Called from file "list.ml", line 57, characters 20-23
Called from file "type.ml", line 1680, characters 26-41
@frabbit
frabbit / Test
Last active August 29, 2015 14:00
class Foo {
using MyModule;
import MyObject;
public static function main () {
import MyObject;
using MyModule2;
import MyStatics.myMethod;
myMethod(4);
}
Test.hx:240: Generated at: 2014-05-01 17:58:08
Test.hx:242: START
Test.hx:224: ABORTED : IndexError('string index out of range',) in unit.TestXML.testBasic
Test.hx:227: STACK :
Called from unit.py line 11775
Called from unit.py line 11422
Called from unit.py line 3755
Called from unit.py line 30247
Called from unit.py line 2319
Parsing bin/xml/neko.xml
Processing types
...............................................................................................................................................................................
Generating navigation
Generating to bin/pages
...............................................................................................................................................................
Generated 309 types in 20 packages
Copying resources from /media/frabbit/data/work/projects/github/dox-py/themes/default/resources
Done (11.01s)
16742913 function calls (16397456 primitive calls) in 11.586 seconds
| a,((TMono x) as b) ->
(match !x with
| None -> if not (link x b a) then error [cannot_unify t1 t2]
| _ -> error [cannot_unify t1 t2])
| ((TMono x) as a),b ->
(match !x with
| None -> if not (link x a b) then error [cannot_unify t1 t2]
| _ -> error [cannot_unify t1 t2])
@frabbit
frabbit / Test.hx
Last active August 29, 2015 14:13
Inlining could be done twice
class A implements B {
public function new () {}
public inline function plus (a:Int,b:Int):Int {
return a + b;
}
}
interface B {
public static function getFirstPath (from:ClassType, to:ClassType):Option<Path>
{
function loop(from:ClassType, to:ClassType, path:Path)
{
trace(loop);
return if (ClassTypes.eq(from, to)) {
Some(path);
} else {