@@ -32,8 +32,10 @@ def __init__(self):
32
32
33
33
def __str__ (self ):
34
34
if self ._lineno is None :
35
- raise InternalCompilerError (
36
- "lineno should be set. some instruction likely referenced this unstored label" , None
35
+ raise CompilerError (
36
+ INTERNAL_COMPILER_ERR ,
37
+ None ,
38
+ "lineno should be set. some instruction likely referenced this unstored label" ,
37
39
)
38
40
39
41
return str (self ._lineno )
@@ -63,7 +65,7 @@ class Function:
63
65
64
66
65
67
class CompilerError (ValueError ):
66
- def __init__ (self , code , node : ast .AST , ** context ):
68
+ def __init__ (self , code , node : ast .AST , desc = "" , ** context ):
67
69
if node is None :
68
70
node = ast .Module (lineno = 0 , col_offset = 0 ) # dummy value
69
71
@@ -76,18 +78,10 @@ def __init__(self, code, node: ast.AST, **context):
76
78
]:
77
79
context ["unparsed" ] = ast .unparse (node )
78
80
super ().__init__ (
79
- f"[ { code } / { node . lineno } : { node . col_offset } ] { ERROR_DESCRIPTIONS [code ].format (** context )} "
81
+ f" { code } : { ERROR_DESCRIPTIONS [code ].format (** context )} , line { node . lineno } , column { node . col_offset } \n { desc } "
80
82
)
81
83
82
84
83
- class InternalCompilerError (CompilerError ):
84
- def __init__ (self , code , node : ast .AST ):
85
- if node is None :
86
- node = ast .Module (lineno = 0 , col_offset = 0 ) # dummy value
87
-
88
- ValueError .__init__ (self , f"[ICE/{ node .lineno } :{ node .col_offset } ] { code } " )
89
-
90
-
91
85
class CompatTransformer (ast .NodeTransformer ):
92
86
if sys .version_info < (3 , 9 ):
93
87
@@ -492,7 +486,7 @@ def visit_FunctionDef(self, node):
492
486
493
487
def visit_Return (self , node ):
494
488
if not self ._epilogue :
495
- raise InternalCompilerError ( "return encountered with epilogue being unset" , node )
489
+ raise CompilerError ( INTERNAL_COMPILER_ERR , node , "return encountered with epilogue being unset" )
496
490
497
491
val = self .as_value (node .value )
498
492
self .ins_append (f"set { REG_RET } { val } " )
0 commit comments