 
 DeclareType::declareType = (r, o) ->
   scope = o.scope
-  declare scope, v, @type.lint(o.types), (@variables = []) for v in @typeables
+  @variables = variables = []
+  declare scope, v, @type.lint(o.types), variables for v in @typeables
   return
 
 Param::declareType = (r, o) ->

  v = stackOffsetExpr bind.spOffset, bind.type if bind?.onStack
  cumulativeOffset = 0
  for prop in props
    field = prop.computedField
    if (fty = field.type) instanceof StructType
      cumulativeOffset += field.offset

  scope = o.scope
  stmts = []
  # Store the pointer to the struct we're copying to.
  destPtr = new Value freshVariable 'dest'
  destPtr.computedType = destPtr.base.computedType = ty
  stmts.push new Assign destPtr, dest
  # Store the pointer to the struct we're copying from.
  srcPtr = new Value freshVariable 'src'
  srcPtr.computedType = srcPtr.base.computedType = ty
  stmts.push new Assign new Value(srcPtr), src
  # Unroll the copy loop over the bytes.
  align = ty.view.BYTES_PER_ELEMENT
  for i in [0...alignmentUnits ty]
    stmts.push new Assign makeDeref(o, destPtr, ty, i * align, ty),
                          makeDeref(o, srcPtr, ty, i * align, ty)
  stmts.push new Value destPtr
  new Value new Parens new Block stmts

