fix: use apply() instead of get() for Maps
This commit is contained in:
parent
30cf42ee3a
commit
ae9625b586
@ -120,12 +120,15 @@ object renamer {
|
||||
globalNumbering: mutable.Map[String, Int],
|
||||
errors: mutable.Builder[Error, List[Error]]
|
||||
): Unit = {
|
||||
scope.current.withDefault(scope.parent).get((ident.v, identType)) match {
|
||||
case Some(Ident(_, uid)) => ident.uid = uid
|
||||
case None => {
|
||||
// Unfortunately map defaults only work with `.apply()`, which throws an error when the key is not found.
|
||||
// Neither is there a way to check whether a default exists, so we have to use a try-catch.
|
||||
try {
|
||||
val Ident(_, uid) = scope.current.withDefault(scope.parent)((ident.v, identType))
|
||||
ident.uid = uid
|
||||
} catch {
|
||||
case _: NoSuchElementException =>
|
||||
errors += Error.UndefinedIdentifier(ident, identType)
|
||||
scope.add(?, ident, identType)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user