Commit 648a9ee4 authored by Roman Alifanov's avatar Roman Alifanov

Fix DCE for try/except and add len/random support

parent 857c6c2c
...@@ -178,11 +178,12 @@ class UsageAnalyzer: ...@@ -178,11 +178,12 @@ class UsageAnalyzer:
elif isinstance(stmt, TryStmt): elif isinstance(stmt, TryStmt):
self.used.add('exception') self.used.add('exception')
self._analyze_body(stmt.try_body) self._analyze_body(stmt.try_block)
if stmt.except_body: for except_clause in stmt.except_clauses:
self._analyze_body(stmt.except_body) if len(except_clause) >= 2:
if stmt.finally_body: self._analyze_body(except_clause[1])
self._analyze_body(stmt.finally_body) if stmt.finally_block:
self._analyze_body(stmt.finally_block)
elif isinstance(stmt, ThrowStmt): elif isinstance(stmt, ThrowStmt):
self.used.add('exception') self.used.add('exception')
...@@ -262,6 +263,11 @@ class UsageAnalyzer: ...@@ -262,6 +263,11 @@ class UsageAnalyzer:
if callee.name in self.defined_classes: if callee.name in self.defined_classes:
self.has_classes = True self.has_classes = True
self.used_classes.add(callee.name) self.used_classes.add(callee.name)
elif callee.name == 'len':
self.used.add('string')
self.used.add('array')
elif callee.name in ('random', 'random_range'):
self.used.add('misc')
if isinstance(callee, MemberAccess): if isinstance(callee, MemberAccess):
if isinstance(callee.object, ThisExpr): if isinstance(callee.object, ThisExpr):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment