summary refs log tree commit diff stats
path: root/tests/borrow/tborrow.nim
diff options
context:
space:
mode:
authorJason Beetham <beefers331@gmail.com>2021-09-16 00:48:58 -0600
committerGitHub <noreply@github.com>2021-09-16 08:48:58 +0200
commitf8e185fec0d8f9caddc196a713fba196b14f8b6b (patch)
tree1aa7e0d688912b6fbc2b4ea6b7079e88a412f1b1 /tests/borrow/tborrow.nim
parentcebf7cdc1ede7385e8d774b83c52d17e7021899b (diff)
downloadNim-f8e185fec0d8f9caddc196a713fba196b14f8b6b.tar.gz
Fixed borrowing dot from aliases (#18854)
Diffstat (limited to 'tests/borrow/tborrow.nim')
-rw-r--r--tests/borrow/tborrow.nim38
1 files changed, 37 insertions, 1 deletions
diff --git a/tests/borrow/tborrow.nim b/tests/borrow/tborrow.nim
index 2fc788fa0..35652e2e0 100644
--- a/tests/borrow/tborrow.nim
+++ b/tests/borrow/tborrow.nim
@@ -52,4 +52,40 @@ block: #14449
   c.foo = 42
   assert a.foo == 300
   assert b.foo == 400d
-  assert c.foo == 42d
\ No newline at end of file
+  assert c.foo == 42d
+
+block: # Borrow from muliple aliasses #16666
+  type
+    AImpl = object
+      i: int
+    
+    A = AImpl
+  
+    B {.borrow: `.`.} = distinct A
+    C = B
+    D {.borrow: `.`.} = distinct C
+    E {.borrow: `.`.} = distinct D
+  
+  let
+    b = default(B)
+    d = default(D)
+    e = default(E)
+  
+  assert b.i == 0
+  assert d.i == 0
+  assert e.i == 0
+
+block: # Borrow from generic alias
+  type
+    AImpl[T] = object
+      i: T
+    B[T] = AImpl[T]
+    C {.borrow: `.`.} = distinct B[int]
+    D = B[float]
+    E {.borrow: `.`.} = distinct D
+
+  let
+    c = default(C)
+    e = default(E)
+  assert c.i == int(0)
+  assert e.i == 0d
\ No newline at end of file