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:
elif isinstance(stmt, TryStmt):
self.used.add('exception')
self._analyze_body(stmt.try_body)
if stmt.except_body:
self._analyze_body(stmt.except_body)
if stmt.finally_body:
self._analyze_body(stmt.finally_body)
self._analyze_body(stmt.try_block)
for except_clause in stmt.except_clauses:
if len(except_clause) >= 2:
self._analyze_body(except_clause[1])
if stmt.finally_block:
self._analyze_body(stmt.finally_block)
elif isinstance(stmt, ThrowStmt):
self.used.add('exception')
......@@ -262,6 +263,11 @@ class UsageAnalyzer:
if callee.name in self.defined_classes:
self.has_classes = True
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.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