Merge branch 'devel' of https://github.com/Araq/Nim into add-nre
* 'devel' of https://github.com/Araq/Nim: Fix #964, fix #1384 Don't inspect typedescs
This commit is contained in:
commit
90ed34db72
168 changed files with 6305 additions and 6961 deletions
|
|
@ -1,6 +1,6 @@
|
|||
discard """
|
||||
line: 7
|
||||
errormsg: "undeclared identifier: 'items'"
|
||||
errormsg: "attempting to call undeclared routine: 'items'"
|
||||
"""
|
||||
|
||||
type a = enum b,c,d
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
discard """
|
||||
action: run
|
||||
"""
|
||||
|
||||
type T = object
|
||||
x: int
|
||||
s: string
|
||||
|
|
@ -29,8 +33,10 @@ doAssert objDeref.x == 42
|
|||
obj.s = "lorem ipsum dolor sit amet"
|
||||
var indexAddr = addr(obj.s[2])
|
||||
|
||||
doAssert indexAddr[] == '4'
|
||||
doAssert indexAddr[] == 'r'
|
||||
|
||||
indexAddr[] = 'd'
|
||||
|
||||
doAssert indexAddr[] == 'd'
|
||||
|
||||
doAssert obj.s == "lodem ipsum dolor sit amet"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
discard """
|
||||
output: '''true'''
|
||||
output: '''true
|
||||
123
|
||||
'''
|
||||
"""
|
||||
|
||||
# This file tests some magic
|
||||
|
|
@ -7,3 +9,4 @@ discard """
|
|||
var foo = cstring("foo")
|
||||
var bar = cstring("foo")
|
||||
echo(foo == bar)
|
||||
echo "01234"[1 .. ^2]
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
discard """
|
||||
action: run
|
||||
"""
|
||||
|
||||
## Tests javascript object generation
|
||||
|
||||
type
|
||||
|
|
@ -28,7 +32,7 @@ var
|
|||
recurse1 = Recurse[int](data: 1, next: recurse2)
|
||||
|
||||
|
||||
assert(test.name == "Jorden")
|
||||
assert(knight.age == 19)
|
||||
assert(knight.item.price == 50)
|
||||
assert(recurse1.next.next.data == 3)
|
||||
doAssert test.name == "Jorden"
|
||||
doAssert knight.age == 19
|
||||
doAssert knight.item.price == 50
|
||||
doAssert recurse1.next.next.data == 3
|
||||
|
|
|
|||
35
tests/js/trefbyvar.nim
Normal file
35
tests/js/trefbyvar.nim
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
discard """
|
||||
output: '''0
|
||||
5
|
||||
0
|
||||
5'''
|
||||
"""
|
||||
|
||||
# bug #2476
|
||||
|
||||
type A = ref object
|
||||
m: int
|
||||
|
||||
proc f(a: var A) =
|
||||
var b: A
|
||||
b.new()
|
||||
b.m = 5
|
||||
a = b
|
||||
|
||||
var t: A
|
||||
t.new()
|
||||
|
||||
echo t.m
|
||||
t.f()
|
||||
echo t.m
|
||||
|
||||
proc main =
|
||||
# now test the same for locals
|
||||
var t: A
|
||||
t.new()
|
||||
|
||||
echo t.m
|
||||
t.f()
|
||||
echo t.m
|
||||
|
||||
main()
|
||||
|
|
@ -1,10 +1,7 @@
|
|||
discard """
|
||||
disabled: "true"
|
||||
output: '''[OK] >:)'''
|
||||
"""
|
||||
|
||||
# Unittest uses lambdalifting at compile-time which we disable for the JS
|
||||
# codegen! So this cannot and will not work for quite some time.
|
||||
|
||||
import unittest
|
||||
|
||||
suite "Bacon":
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
discard """
|
||||
file: "tissue710.nim"
|
||||
line: 8
|
||||
errorMsg: "undeclared identifier: '||'"
|
||||
errorMsg: "attempting to call undeclared routine: '||'"
|
||||
"""
|
||||
var sum = 0
|
||||
for x in 3..1000:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
discard """
|
||||
file: "tnoop.nim"
|
||||
line: 11
|
||||
errormsg: "undeclared identifier: 'a'"
|
||||
errormsg: "attempting to call undeclared routine: 'a'"
|
||||
"""
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
discard """
|
||||
file: "topaque.nim"
|
||||
line: 16
|
||||
errormsg: "undeclared identifier: \'buffer\'"
|
||||
errormsg: "undeclared field: \'buffer\'"
|
||||
"""
|
||||
# Test the new opaque types
|
||||
|
||||
import
|
||||
import
|
||||
mopaque
|
||||
|
||||
|
||||
var
|
||||
L: TLexer
|
||||
|
||||
|
||||
L.filename = "ha"
|
||||
L.line = 34
|
||||
L.buffer[0] = '\0' #ERROR_MSG undeclared field: 'buffer'
|
||||
|
|
|
|||
26
tests/parallel/tptr_to_ref.nim
Normal file
26
tests/parallel/tptr_to_ref.nim
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# bug #2854
|
||||
|
||||
import locks, threadpool, osproc
|
||||
|
||||
const MAX_WORKERS = 10
|
||||
|
||||
type
|
||||
Killer = object
|
||||
lock: Lock
|
||||
bailed {.guard: lock.}: bool
|
||||
processes {.guard: lock.}: array[0..MAX_WORKERS-1, foreign ptr Process]
|
||||
|
||||
template hold(lock: Lock, body: stmt) =
|
||||
lock.acquire
|
||||
defer: lock.release
|
||||
{.locks: [lock].}:
|
||||
body
|
||||
|
||||
proc initKiller*(): Killer =
|
||||
initLock(result.lock)
|
||||
result.lock.hold:
|
||||
result.bailed = false
|
||||
for i, _ in result.processes:
|
||||
result.processes[i] = nil
|
||||
|
||||
var killer = initKiller()
|
||||
21
tests/stdlib/tunittest.nim
Normal file
21
tests/stdlib/tunittest.nim
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import unittest
|
||||
|
||||
|
||||
proc doThings(spuds: var int): int =
|
||||
spuds = 24
|
||||
return 99
|
||||
test "#964":
|
||||
var spuds = 0
|
||||
check doThings(spuds) == 99
|
||||
check spuds == 24
|
||||
|
||||
|
||||
from strutils import toUpper
|
||||
test "#1384":
|
||||
check(@["hello", "world"].map(toUpper) == @["HELLO", "WORLD"])
|
||||
|
||||
|
||||
import options
|
||||
test "unittest typedescs":
|
||||
check(none(int) == none(int))
|
||||
check(none(int) != some(1))
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
discard """
|
||||
file: "twrongtupleaccess.nim"
|
||||
line: 9
|
||||
errormsg: "undeclared identifier: \'setBLAH\'"
|
||||
errormsg: "attempting to call undeclared routine: \'setBLAH\'"
|
||||
"""
|
||||
# Bugfix
|
||||
|
||||
|
|
|
|||
14
tests/vm/tconstobj.nim
Normal file
14
tests/vm/tconstobj.nim
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
discard """
|
||||
output: '''(name: hello)'''
|
||||
"""
|
||||
|
||||
# bug #2774
|
||||
|
||||
type Foo = object
|
||||
name: string
|
||||
|
||||
const fooArray = [
|
||||
Foo(name: "hello")
|
||||
]
|
||||
|
||||
echo fooArray[0]
|
||||
Loading…
Add table
Add a link
Reference in a new issue