Scala Compiler2.13.17 < Back


# Packages

-  package root

  The Scala compiler and reflection APIs.

  The Scala compiler and reflection APIs.

  Definition Classes
    root
-  package scala
  Definition Classes
    root
-  package tools
  Definition Classes
    scala
-  package nsc
  Definition Classes
    tools
-  package typechecker
  Definition Classes
    nsc
-  trait Macros extends MacroRuntimes with Traces with Helpers

  Code to deal with macros, namely with: * Compilation of macro definitions * Expansion of macro applications

  Code to deal with macros, namely with: * Compilation of macro definitions * Expansion of macro applications

  Say we have in a class C:

  def foo[T](xs: List[T]): T = macro fooBar

  Then fooBar needs to point to a static method of the following form:

  def fooBar[T: c.WeakTypeTag] // type tag annotation is optional (c: scala.reflect.macros.blackbox.Context) (xs: c.Expr[List[T]]) : c.Expr[T] = { ... }

  Then, if foo is called in qual.foo[Int](elems), where qual: D, the macro application is expanded to a reflective invocation of fooBar with parameters:

  (simpleMacroContext{ type PrefixType = D; val prefix = qual }) (Expr(elems)) (TypeTag(Int))

  Definition Classes
    typechecker
- DefMacroExpander
- JavaReflectionResolvers
- MacroArgs
- MacroExpander
- MacroImplBinding
- MacroRuntimeResolver

o

scala.tools.nsc.typechecker.Macros

# MacroImplBinding

###
Companion class MacroImplBinding

#### object MacroImplBinding extends java.io.Serializable

Source
  Macros.scala

Linear Supertypes
java.io.Serializable, AnyRef, Any

Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. MacroImplBinding
2. Serializable
3. AnyRef
4. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
4.  final def asInstanceOf[T0]: T0
   Definition Classes
     Any
5.  def clone(): AnyRef
   Attributes
     protected[lang]
   Definition Classes
     AnyRef
   Annotations
     @throws(classOf[java.lang.CloneNotSupportedException]) @native()
6.  final def eq(arg0: AnyRef): Boolean
   Definition Classes
     AnyRef
7.  def equals(arg0: AnyRef): Boolean
   Definition Classes
     AnyRef → Any
8.  def extractMacroBindingImpl(macroImplRef: Global.Tree): Analyzer.MacroImplBinding
9.  def finalize(): Unit
   Attributes
     protected[lang]
   Definition Classes
     AnyRef
   Annotations
     @throws(classOf[java.lang.Throwable])
10.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
11.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
12.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
13.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
14.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
15.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
16.  def pickle(macroImplRef: Global.Tree): Global.Tree
17.  def pickleAtom(obj: Any): Global.Tree
18.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
19.  def toString(): String
    Definition Classes
      AnyRef → Any
20.  def unpickle(pickle: Global.Tree): Analyzer.MacroImplBinding
21.  def unpickleAtom(tree: Global.Tree): Any
22.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
23.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
24.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Inherited from java.io.Serializable

### Inherited from AnyRef

### Inherited from Any

### Ungrouped