@@ -143,6 +143,29 @@ class Exec extends Exec_ {
143
143
override Stmt getASubStatement ( ) { none ( ) }
144
144
}
145
145
146
+ /** An except group statement (part of a `try` statement), such as `except* IOError as err:` */
147
+ class ExceptGroupStmt extends ExceptGroupStmt_ {
148
+ /* syntax: except Expr [ as Expr ]: */
149
+ /** Gets the immediately enclosing try statement */
150
+ Try getTry ( ) { result .getAHandler ( ) = this }
151
+
152
+ override Expr getASubExpression ( ) {
153
+ result = this .getName ( )
154
+ or
155
+ result = this .getType ( )
156
+ }
157
+
158
+ override Stmt getASubStatement ( ) { result = this .getAStmt ( ) }
159
+
160
+ override Stmt getLastStatement ( ) { result = this .getBody ( ) .getLastItem ( ) .getLastStatement ( ) }
161
+
162
+ override Expr getType ( ) {
163
+ result = super .getType ( ) and not result instanceof Tuple
164
+ or
165
+ result = super .getType ( ) .( Tuple ) .getAnElt ( )
166
+ }
167
+ }
168
+
146
169
/** An except statement (part of a `try` statement), such as `except IOError as err:` */
147
170
class ExceptStmt extends ExceptStmt_ {
148
171
/* syntax: except Expr [ as Expr ]: */
@@ -364,10 +387,10 @@ class Try extends Try_ {
364
387
result = this .getAnOrelse ( )
365
388
}
366
389
367
- override ExceptStmt getHandler ( int i ) { result = Try_ .super .getHandler ( i ) }
390
+ override Stmt getHandler ( int i ) { result = Try_ .super .getHandler ( i ) }
368
391
369
392
/** Gets an exception handler of this try statement. */
370
- override ExceptStmt getAHandler ( ) { result = Try_ .super .getAHandler ( ) }
393
+ override Stmt getAHandler ( ) { result = Try_ .super .getAHandler ( ) }
371
394
372
395
override Stmt getLastStatement ( ) {
373
396
result = this .getFinalbody ( ) .getLastItem ( ) .getLastStatement ( )
0 commit comments