better support for slices as views (#15414)

* moved view tests to tests/views
* refactoring
* more refactorings
* better support for system.toOpenArray for first class view types
This commit is contained in:
Andreas Rumpf 2020-09-27 09:20:10 +02:00 • committed by GitHub
commit 57b7841c18
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 100 additions and 44 deletions

View file

@ -1762,7 +1762,7 @@ proc semReturn(c: PContext, n: PNode): PNode =
a.add newSymNode(c.p.resultSym)
a.add n[0]
n[0] = a
else:
else:
localError(c.config, n.info, errNoReturnTypeDeclared)
return
result[0] = semAsgn(c, n[0])
@ -1831,8 +1831,10 @@ proc semYieldVarResult(c: PContext, n: PNode, restype: PType) =
else:
localError(c.config, n[0].info, errXExpected, "tuple constructor")
else:
if isViewType(t):
n[0] = takeImplicitAddr(c, n[0], false)
when false:
# XXX investigate what we really need here.
if isViewType(t):
n[0] = takeImplicitAddr(c, n[0], false)
proc semYield(c: PContext, n: PNode): PNode =
result = n
@ -2060,7 +2062,7 @@ proc semQuoteAst(c: PContext, n: PNode): PNode =
else:
identNodeSym.newSymNode
quotes[1] = newTreeI(nkCall, n.info, identNode, newStrNode(nkStrLit, "result"))
result = newTreeI(nkCall, n.info,
result = newTreeI(nkCall, n.info,
createMagic(c.graph, "getAst", mExpandToAst).newSymNode,
newTreeI(nkCall, n.info, quotes))
result = semExpandToAst(c, result)