class ComputeBridges extends AnyRef
Ordering
- Alphabetic
- By Inheritance
Inherited
- ComputeBridges
- AnyRef
- Any
Implicitly
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- new ComputeBridges(unit: Global.CompilationUnit, root: Global.Symbol)
Type Members
- class BridgesCursor extends Global.overridingPairs.Cursor
Value Members
- val bridgeTarget: HashMap[Global.Symbol, Global.Symbol]
- var bridges: collection.immutable.List[Global.Tree]
- val bridgesScope: Global.Scope
-
def
checkBridgeOverrides(member: Global.Symbol, other: Global.Symbol, bridge: Global.Symbol): Seq[(Global.Position, String)]
Check that a bridge only overrides members that are also overridden by the original member.
Check that a bridge only overrides members that are also overridden by the original member. This test is necessary only for members that have a value class in their type. Such members are special because their types after erasure and after post-erasure differ/. This means we generate them after erasure, but the post-erasure transform might introduce a name clash. The present method guards against these name clashes.
- member
The original member
- other
The overridden symbol for which the bridge was generated
- bridge
The bridge
-
def
checkPair(pair: SymbolPair): Unit
TODO - work through this logic with a fine-toothed comb, incorporating into SymbolPairs where appropriate.
- def compute(): (List[Global.Tree], Set[Global.Symbol])
- def makeBridgeDefDef(bridge: Global.Symbol, member: Global.Symbol, other: Global.Symbol): Global.DefDef
- val opc: BridgesCursor
- val site: Global.Type
- var toBeRemoved: Set[Global.Symbol]
The Scala compiler and reflection APIs.