From 24fd4b39b4f887ade8e8d894bae89672234bdacb Mon Sep 17 00:00:00 2001
From: Yangge Li <li213@illinois.edu>
Date: Mon, 20 Jun 2022 19:50:41 -0500
Subject: [PATCH] fix small bug due to inconsistency between python 3.8 and
 3.10

---
 .../scene_verifier/code_parser/pythonparser.py      | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py b/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py
index a8cf1f85..3e5370ff 100644
--- a/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py
+++ b/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py
@@ -414,10 +414,15 @@ class ControllerAst():
                             arg_annotation = arg.annotation.id
                         # Handle case when input is a list of variables 
                         elif isinstance(arg.annotation, ast.Subscript):
-                            if arg.annotation.slice.value.id not in state_object_dict:
-                                continue 
-                            arg_annotation = arg.annotation.slice.value.id
-                        
+                            if isinstance(arg.annotation.slice, ast.Index):
+                                if arg.annotation.slice.value.id not in state_object_dict:
+                                    continue 
+                                arg_annotation = arg.annotation.slice.value.id
+                            elif isinstance(arg.annotation.slice, ast.Name):
+                                if arg.annotation.slice.id not in state_object_dict:
+                                    continue
+                                arg_annotation = arg.annotation.slice.id
+                            
                         arg_name = arg.arg
                         vars_dict[arg_name] = {'cont':[], 'disc':[], "type": []}
                         for var in state_object_dict[arg_annotation]['cont']:
-- 
GitLab