summary refs log tree commit diff stats
path: root/tests/destructor/twasmoved_error.nim
blob: 1cd57e3df1108526b79ebcfc98de80ca0702b8b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
discard """
  cmd: '''nim c --mm:arc $file'''
  errormsg: "'=wasMoved' is not available for type <Game>; routine: main"
"""

# bug #19291

const
  screenWidth = 800
  screenHeight = 450

var
  ready = false
type
  Game = object

proc `=destroy`(x: var Game) =
  assert ready, "Window is already opened"
  ready = false

proc `=sink`(x: var Game; y: Game) {.error.}
proc `=copy`(x: var Game; y: Game) {.error.}
proc `=wasMoved`(x: var Game) {.error.}

proc initGame(width, height: int32, title: string): Game =
  assert not ready, "Window is already closed"
  ready = true

proc update(x: Game) = discard

proc main =
  var g = initGame(screenWidth, screenHeight, "Tetris raylib")
  g.update()
  var g2 = g
  echo "hello"

main()