bugfix: fixed broken expr proc bodies

This commit is contained in:
Araq 2012-10-12 18:40:24 +02:00
commit 8cadc60e08
2 changed files with 6 additions and 3 deletions

View file

@ -903,9 +903,9 @@ proc semStaticStmt(c: PContext, n: PNode): PNode =
result.sons[0] = emptyNode
# special marker values that indicates that we are
# 1) AnalyzingDestructor: currenlty analyzing the type for destructor
# 1) AnalyzingDestructor: currently analyzing the type for destructor
# generation (needed for recursive types)
# 2) DestructorIsTrivial: completed the anlysis before and determined
# 2) DestructorIsTrivial: completed the analysis before and determined
# that the type has a trivial destructor
var AnalyzingDestructor, DestructorIsTrivial: PSym
new(AnalyzingDestructor)
@ -1132,6 +1132,10 @@ proc semStmtList(c: PContext, n: PNode): PNode =
else: localError(n.sons[j].info, errStmtInvalidAfterReturn)
else: nil
# a statement list (s; e) has the type 'e':
if result.kind == nkStmtList and result.len > 0:
result.typ = lastSon(result).typ
proc SemStmt(c: PContext, n: PNode): PNode =
# now: simply an alias:
result = semExprNoType(c, n)

View file

@ -6,7 +6,6 @@ version 0.9.2
- implement the compiler as a service
- implement for loop transformation for first class iterators
- ``=`` should be overloadable; requires specialization for ``=``
- fix broken expr/stmt handling for proc bodies
- make 'bind' default for templates and introduce 'mixin'
- implicit deref for parameter matching; overloading based on 'var T'
- optimize genericAssign in the code generator