diff options
-rwxr-xr-x | compiler/semstmts.nim | 8 | ||||
-rwxr-xr-x | todo.txt | 1 |
2 files changed, 6 insertions, 3 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 0a2275229..5c0060e20 100755 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -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) @@ -1131,6 +1131,10 @@ proc semStmtList(c: PContext, n: PNode): PNode = of nkPragma, nkCommentStmt, nkNilLit, nkEmpty: nil 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: diff --git a/todo.txt b/todo.txt index b5afff4f9..d61dddf25 100755 --- a/todo.txt +++ b/todo.txt @@ -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 |