TypeArgManagement

de.uni_luebeck.isp.tessla.tessla_compiler.TypeArgManagement
See theTypeArgManagement companion object
case class TypeArgManagement(resMap: Map[Identifier, TypeExpression], unappliedArgs: Seq[TypeExpression])

Class for managing type arguments

Value parameters

resMap

Map representing depiction from type arg names to types

unappliedArgs

Types where type application has already been processed but not the expression where the types are applied to

Attributes

Companion
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def parsKnown(pars: Seq[Identifier]): TypeArgManagement

Processes the sub-expression after a type application and adds the type arg -> type relation to the resMap. unappliedArgs is cleared. The types are connected to the arguments in the order they appeared in the type application.

Processes the sub-expression after a type application and adds the type arg -> type relation to the resMap. unappliedArgs is cleared. The types are connected to the arguments in the order they appeared in the type application.

Value parameters

pars

The type params of the sub-expression. If number does not match previous typeApp call as much type args as possible are connected to types.

Attributes

Returns

An updated TypeArgManagement

def typeApp(types: Seq[TypeExpression]): TypeArgManagement

Process a type application. The new types are stored in unappliedArgs until the expression they are applied on is hit. If unappliedArgs already contains types they are overwritten.

Process a type application. The new types are stored in unappliedArgs until the expression they are applied on is hit. If unappliedArgs already contains types they are overwritten.

Value parameters

types

The types which are applied to the subexpression

Attributes

Returns

An updated TypeArgManagement

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product