mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-30 19:23:57 +00:00
* fix #19304 Borrowing std/times.format causes Error: illformed AST * follow suggestions * mitigate for #4121 * improve error message
This commit is contained in:
@@ -2,12 +2,19 @@ discard """
|
||||
cmd: "nim check --hints:off --warnings:off $file"
|
||||
action: "reject"
|
||||
nimout:'''
|
||||
tinvalidborrow.nim(18, 3) Error: only a 'distinct' type can borrow `.`
|
||||
tinvalidborrow.nim(19, 3) Error: only a 'distinct' type can borrow `.`
|
||||
tinvalidborrow.nim(20, 1) Error: no symbol to borrow from found
|
||||
tinvalidborrow.nim(25, 3) Error: only a 'distinct' type can borrow `.`
|
||||
tinvalidborrow.nim(26, 3) Error: only a 'distinct' type can borrow `.`
|
||||
tinvalidborrow.nim(27, 1) Error: borrow proc without distinct type parameter is meaningless
|
||||
tinvalidborrow.nim(36, 1) Error: borrow with generic parameter is not supported
|
||||
tinvalidborrow.nim(41, 1) Error: borrow from proc return type mismatch: 'T'
|
||||
tinvalidborrow.nim(42, 1) Error: borrow from '[]=' is not supported
|
||||
'''
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# bug #516
|
||||
|
||||
type
|
||||
@@ -23,3 +30,13 @@ var
|
||||
d, e: TAtom
|
||||
|
||||
discard( $(d == e) )
|
||||
|
||||
# issue #4121
|
||||
type HeapQueue[T] = distinct seq[T]
|
||||
proc len*[T](h: HeapQueue[T]): int {.borrow.}
|
||||
|
||||
# issue #3564
|
||||
type vec4[T] = distinct array[4, float32]
|
||||
|
||||
proc `[]`(v: vec4, i: int): float32 {.borrow.}
|
||||
proc `[]=`(v: vec4, i: int, va: float32) {.borrow.}
|
||||
|
||||
7
tests/stdlib/t19304.nim
Normal file
7
tests/stdlib/t19304.nim
Normal file
@@ -0,0 +1,7 @@
|
||||
import times
|
||||
|
||||
type DjangoDateTime* = distinct DateTime
|
||||
|
||||
# proc toTime*(x: DjangoDateTime): Time {.borrow.} # <-- works
|
||||
proc format*(x: DjangoDateTime, f: TimeFormat,
|
||||
loc: DateTimeLocale = DefaultLocale): string {.borrow.}
|
||||
Reference in New Issue
Block a user