EnrichedSIR

scalus.sir.EnrichedSIR
object EnrichedSIR

EnrichedSIR[P,T] mirrors the structure of SIR trait but allows parameterization with pattern type P and info type T.

For each SIR case class Xxx, there is a sealed trait Xxx[P,T] with two cases:

  • XxxPattern[P,T](pattern: P, info: T) representing a pattern node
  • XxxInfo[P,T] with the same parameters as origin SIR, but using appropriate traits from EnrichedSIR[P,T] and with additional info: T

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

object And

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
And.type
sealed trait And[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class AndInfo[P, T]
class AndPattern[P, T]
sealed trait AnnotatedBase[P, T] extends Base[P, T]

Attributes

Supertypes
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
trait And[P, T]
class AndInfo[P, T]
class AndPattern[P, T]
trait Apply[P, T]
class ApplyInfo[P, T]
class ApplyPattern[P, T]
trait Builtin[P, T]
class BuiltinInfo[P, T]
class BuiltinPattern[P, T]
trait Cast[P, T]
class CastInfo[P, T]
class CastPattern[P, T]
trait Const[P, T]
class ConstInfo[P, T]
class ConstPattern[P, T]
trait Constr[P, T]
class ConstrInfo[P, T]
class ConstrPattern[P, T]
trait Error[P, T]
class ErrorInfo[P, T]
class ErrorPattern[P, T]
trait ExternalVar[P, T]
class ExternalVarInfo[P, T]
class ExternalVarPattern[P, T]
trait IfThenElse[P, T]
class IfThenElseInfo[P, T]
class IfThenElsePattern[P, T]
trait LamAbs[P, T]
class LamAbsInfo[P, T]
class LamAbsPattern[P, T]
trait Let[P, T]
class LetInfo[P, T]
class LetPattern[P, T]
trait Match[P, T]
class MatchInfo[P, T]
class MatchPattern[P, T]
trait Not[P, T]
class NotInfo[P, T]
class NotPattern[P, T]
trait Or[P, T]
class OrInfo[P, T]
class OrPattern[P, T]
trait Select[P, T]
class SelectInfo[P, T]
class SelectPattern[P, T]
trait Var[P, T]
class VarInfo[P, T]
class VarPattern[P, T]
Show all
object Apply

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Apply.type
sealed trait Apply[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class ApplyInfo[P, T]
class ApplyPattern[P, T]
sealed trait Base[P, T]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait AnnotatedBase[P, T]
trait And[P, T]
class AndInfo[P, T]
class AndPattern[P, T]
trait Apply[P, T]
class ApplyInfo[P, T]
class ApplyPattern[P, T]
trait Builtin[P, T]
class BuiltinInfo[P, T]
class BuiltinPattern[P, T]
trait Cast[P, T]
class CastInfo[P, T]
class CastPattern[P, T]
trait Const[P, T]
class ConstInfo[P, T]
class ConstPattern[P, T]
trait Constr[P, T]
class ConstrInfo[P, T]
class ConstrPattern[P, T]
trait Error[P, T]
class ErrorInfo[P, T]
class ErrorPattern[P, T]
trait ExternalVar[P, T]
class ExternalVarInfo[P, T]
class ExternalVarPattern[P, T]
trait IfThenElse[P, T]
class IfThenElseInfo[P, T]
class IfThenElsePattern[P, T]
trait LamAbs[P, T]
class LamAbsInfo[P, T]
class LamAbsPattern[P, T]
trait Let[P, T]
class LetInfo[P, T]
class LetPattern[P, T]
trait Match[P, T]
class MatchInfo[P, T]
class MatchPattern[P, T]
trait Not[P, T]
class NotInfo[P, T]
class NotPattern[P, T]
trait Or[P, T]
class OrInfo[P, T]
class OrPattern[P, T]
trait Select[P, T]
class SelectInfo[P, T]
class SelectPattern[P, T]
trait Var[P, T]
class VarInfo[P, T]
class VarPattern[P, T]
trait Decl[P, T]
class DeclInfo[P, T]
class DeclPattern[P, T]
Show all
case class BindingEnriched[P, T](name: String, tp: SIRType, value: Base[P, T])

Attributes

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

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Builtin.type
sealed trait Builtin[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class BuiltinInfo[P, T]
class BuiltinPattern[P, T]
case class CaseEnriched[P, T](pattern: Pattern, body: Base[P, T], anns: AnnotationsDecl)

Attributes

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

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Cast.type
sealed trait Cast[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class CastInfo[P, T]
class CastPattern[P, T]
object Const

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Const.type
sealed trait Const[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class ConstInfo[P, T]
class ConstPattern[P, T]
object Constr

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Constr.type
sealed trait Constr[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class ConstrInfo[P, T]
class ConstrPattern[P, T]
object Decl

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Decl.type
sealed trait Decl[P, T] extends Base[P, T]

Attributes

Companion
object
Supertypes
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class DeclInfo[P, T]
class DeclPattern[P, T]
object Error

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Error.type
sealed trait Error[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class ErrorInfo[P, T]
class ErrorPattern[P, T]
object ExternalVar

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait ExternalVar[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class ExternalVarInfo[P, T]
class ExternalVarPattern[P, T]
object IfThenElse

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
IfThenElse.type
sealed trait IfThenElse[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class IfThenElseInfo[P, T]
class IfThenElsePattern[P, T]
object LamAbs

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
LamAbs.type
sealed trait LamAbs[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class LamAbsInfo[P, T]
class LamAbsPattern[P, T]
object Let

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Let.type
sealed trait Let[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class LetInfo[P, T]
class LetPattern[P, T]
object Match

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Match.type
sealed trait Match[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class MatchInfo[P, T]
class MatchPattern[P, T]
object Not

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Not.type
sealed trait Not[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class NotInfo[P, T]
class NotPattern[P, T]
object Or

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Or.type
sealed trait Or[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class OrInfo[P, T]
class OrPattern[P, T]
object Select

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Select.type
sealed trait Select[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class SelectInfo[P, T]
class SelectPattern[P, T]
object Var

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Var.type
sealed trait Var[P, T] extends AnnotatedBase[P, T]

Attributes

Companion
object
Supertypes
trait AnnotatedBase[P, T]
trait Base[P, T]
class Object
trait Matchable
class Any
Known subtypes
class VarInfo[P, T]
class VarPattern[P, T]
case class VarEnriched[P, T](name: String, tp: SIRType)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all