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