Added a generics test case.
This commit is contained in:
parent
8ee63f9836
commit
958b1cb976
1 changed files with 23 additions and 0 deletions
23
tests/accept/compile/tgenericvariant.nim
Normal file
23
tests/accept/compile/tgenericvariant.nim
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
type
|
||||||
|
TMaybe[T] = object
|
||||||
|
case empty: Bool
|
||||||
|
of False: value: T
|
||||||
|
else: nil
|
||||||
|
|
||||||
|
proc Just*[T](val: T): TMaybe[T] =
|
||||||
|
result.empty = False
|
||||||
|
result.value = val
|
||||||
|
|
||||||
|
proc Nothing[T](): TMaybe[T] =
|
||||||
|
result.empty = True
|
||||||
|
|
||||||
|
proc safeReadLine(): TMaybe[string] =
|
||||||
|
var r = stdin.readLine()
|
||||||
|
if r == "": return Nothing[string]()
|
||||||
|
else: return Just(r)
|
||||||
|
|
||||||
|
when isMainModule:
|
||||||
|
var Test = Just("Test")
|
||||||
|
echo(Test.value)
|
||||||
|
var mSomething = safeReadLine()
|
||||||
|
echo(mSomething.value)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue