CallResolver

Resolves CallExpression and NewExpression targets.

A CallExpression specifies the method that wants to be called via CallExpression.name. The call target is a method of the same class the caller belongs to, so the name is resolved to the appropriate MethodDeclaration. This pass also takes into consideration that a method might not be present in the current class, but rather has its implementation in a superclass, and sets the pointer accordingly.

Constructor calls with ConstructExpression are resolved in such a way that their ConstructExpression.instantiates points to the correct RecordDeclaration. Additionally, the ConstructExpression.constructor is set to the according ConstructorDeclaration.

This pass should NOT use any DFG edges because they are computed / adjusted in a later stage.

Constructors

Link copied to clipboard

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open override fun accept(translationResult: TranslationResult)
Link copied to clipboard
fun addSoftDependency(toAdd: Class<out Pass?>)
Link copied to clipboard
Link copied to clipboard
open override fun cleanup()
Link copied to clipboard
Link copied to clipboard

Check if the pass requires a specific language frontend and if that frontend has been executed.

Link copied to clipboard

Specifies, whether this pass supports this particular language. This defaults to true * and needs to be overridden if a different behaviour is wanted.

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard

Handle calls in the form of super.call() or ClassName.super.call(), conforming to JLS13 §15.12.1.