Paste: type minefield

Author: j
Mode: text
Date: Thu, 12 Aug 2010 04:48:06
Plain Text |
alias FooCodePointer[A, B] = CCodePointer[A, B];

record Foo {
    a: FooCodePointer[(UInt, Float), ()];
    b: FooCodePointer[(UInt), ()];
}

foo(Args, Return) {
    return FooCodePointer[Args, Return](0);
}

bar(x: Foo) {
    x.a = foo((UInt, Float), ());
    x.b = foo((UInt), ());
}

main() {
    var x = Foo();
    bar(x);
}

Annotation: error

Author: j
Mode: text
Date: Thu, 12 Aug 2010 04:49:41
Plain Text |
###############################
bar(x: Foo) {
    x.a = foo((UInt, Float), ());
    x.b = foo((UInt), ());
----^
}

###############################
foo.clay(14,4): error: no matching operation

compilation context: 
  assign(CCodePointer[UInt32, ()], CCodePointer[(UInt32, Float32), ()])
  bar(Foo)
  main()
  getExitCode()
  callMain(Static[main])

New Annotation

Summary:
Author:
Mode:
Body: