diff options
author | Simon Hafner <hafnersimon@gmail.com> | 2015-04-01 06:33:24 +0500 |
---|---|---|
committer | Simon Hafner <hafnersimon@gmail.com> | 2015-04-01 06:33:24 +0500 |
commit | a339cb5ed5e2389ad77ee05d2e553cbf43f279b2 (patch) | |
tree | 91182bc92f2421f95e618fdc2d0375022f3839eb /compiler/parampatterns.nim | |
parent | 06b7892ed0878f06c54fa178a07d9844b4fa760f (diff) | |
parent | 165619552a7ad0fa4f594963ee0441dd711edfd4 (diff) | |
download | Nim-a339cb5ed5e2389ad77ee05d2e553cbf43f279b2.tar.gz |
Merge branch 'devel' into jpoirier-realtimeGCTest
Diffstat (limited to 'compiler/parampatterns.nim')
-rw-r--r-- | compiler/parampatterns.nim | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/parampatterns.nim b/compiler/parampatterns.nim index 8c0875ab1..3f67005b9 100644 --- a/compiler/parampatterns.nim +++ b/compiler/parampatterns.nim @@ -131,11 +131,10 @@ proc semNodeKindConstraints*(p: PNode): PNode = result.strVal.add(ppEof) type - TSideEffectAnalysis = enum + TSideEffectAnalysis* = enum seUnknown, seSideEffect, seNoSideEffect -proc checkForSideEffects(n: PNode): TSideEffectAnalysis = - # XXX is 'raise' a side effect? +proc checkForSideEffects*(n: PNode): TSideEffectAnalysis = case n.kind of nkCallKinds: # only calls can produce side effects: @@ -162,6 +161,8 @@ proc checkForSideEffects(n: PNode): TSideEffectAnalysis = # an atom cannot produce a side effect: result = seNoSideEffect else: + # assume no side effect: + result = seNoSideEffect for i in 0 .. <n.len: let ret = checkForSideEffects(n.sons[i]) if ret == seSideEffect: return ret |