makes koch.nim sem'check with --newruntime

This commit is contained in:
Araq
2019-04-06 19:13:10 +02:00
parent f1ee36692a
commit 9f5d9d1993
3 changed files with 12 additions and 6 deletions

View File

@@ -1522,7 +1522,7 @@ proc asgnToResultVar(c: PContext, n, le, ri: PNode) {.inline.} =
proc asgnToResult(c: PContext, n, le, ri: PNode) =
# Special typing rule: do not allow to pass 'owned T' to 'T' in 'result = x':
if ri.typ != nil and ri.typ.skipTypes(abstractInst).kind == tyOwned and
le.typ != nil and le.typ.skipTypes(abstractInst).kind != tyOwned:
le.typ != nil and le.typ.skipTypes(abstractInst).kind != tyOwned and ri.kind in nkCallKinds:
localError(c.config, n.info, "cannot return an owned pointer as an unowned pointer; " &
"use 'owned(" & typeToString(le.typ) & ")' as the return type")

View File

@@ -57,8 +57,8 @@ type
id: Handle
else:
inHandle, outHandle, errHandle: FileHandle
inStream, outStream, errStream: Stream
id: Pid
inStream, outStream, errStream: owned(Stream)
exitStatus: cint
exitFlag: bool
options: set[ProcessOption]
@@ -724,15 +724,21 @@ when defined(Windows) and not defined(useNimRtl):
proc inputStream(p: Process): Stream =
streamAccess(p)
result = newFileHandleStream(p.inHandle)
if p.inStream == nil:
p.inStream = newFileHandleStream(p.inHandle)
result = p.inStream
proc outputStream(p: Process): Stream =
streamAccess(p)
result = newFileHandleStream(p.outHandle)
if p.outStream == nil:
p.outStream = newFileHandleStream(p.outHandle)
result = p.outStream
proc errorStream(p: Process): Stream =
streamAccess(p)
result = newFileHandleStream(p.errHandle)
if p.errStream == nil:
p.errStream = newFileHandleStream(p.errHandle)
result = p.errStream
proc execCmd(command: string): int =
var

View File

@@ -276,7 +276,7 @@ proc newStringTable*(keyValuePairs: varargs[string],
inc(i, 2)
proc newStringTable*(keyValuePairs: varargs[tuple[key, val: string]],
mode: StringTableMode = modeCaseSensitive): StringTableRef {.
mode: StringTableMode = modeCaseSensitive): owned(StringTableRef) {.
rtlFunc, extern: "nst$1WithTableConstr".} =
## Creates a new string table with given `(key, value)` tuple pairs.
##