Skip to content

Instantly share code, notes, and snippets.

@gmpreussner
Created February 28, 2016 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gmpreussner/2128bb16112e194ff53c to your computer and use it in GitHub Desktop.
Save gmpreussner/2128bb16112e194ff53c to your computer and use it in GitHub Desktop.
type
Foo[T] = ref object
x: T
Bar[N: static[int], T] = ref object
a: array[N, T]
x: T
Foobar[N: static[int], T] = object
b: Bar[N, T]
proc foobar[N, T](x: var Foobar[N, T]) =
x.b = Bar[N, T](x: 42) # !!!
when isMainModule:
var f = Foo[int](x: 42) # works
var b = Bar[10, int](x: 42) # works
var fb: Foobar[10, int] # works
fb.b = Bar[10, int](x: 42)
fb.foobar # Error: object constructor needs an object type
@gmpreussner
Copy link
Author

This works:

var fb: Foobar[10, int]
new fb.b
fb.b.x = 42

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment