scala.reflect

# macros

#### package macros

EXPERIMENTAL

The base package for Scala macros.

Macros are functions that are called by the compiler during compilation. Within these functions the programmer has access to compiler APIs. For example, it is possible to generate, analyze and typecheck code.

See the Macros Guide on how to get started with Scala macros.

Linear Supertypes
AnyRef, Any
Ordering

1. Alphabetic
2. By inheritance

Inherited

1. macros
2. AnyRef
3. Any

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Type Members

1. #### trait Aliases extends AnyRef

   EXPERIMENTAL

2. #### abstract class Attachments extends AnyRef

   EXPERIMENTAL

3. #### trait Enclosures extends AnyRef

   EXPERIMENTAL

4. #### trait Evals extends AnyRef

   EXPERIMENTAL

5. #### trait ExprUtils extends AnyRef

   EXPERIMENTAL

6. #### trait FrontEnds extends AnyRef

   EXPERIMENTAL

7. #### trait Infrastructure extends AnyRef

   EXPERIMENTAL

8. #### trait Internals extends AnyRef

   EXPERIMENTAL

9. #### trait Names extends AnyRef

   EXPERIMENTAL

10. #### case class ParseException(pos: Position, msg: String) extends Exception with Product with Serializable

    Indicates an error during scala.reflect.macros.Parsers#parse.

11. #### trait Parsers extends AnyRef

    EXPERIMENTAL

12. #### case class ReificationException(pos: Position, msg: String) extends Exception with Product with Serializable

    Indicates an expected error during one of the `reifyXXX` methods in scala.reflect.macros.Reifiers.

13. #### trait Reifiers extends AnyRef

    EXPERIMENTAL

14. #### case class TypecheckException(pos: Position, msg: String) extends Exception with Product with Serializable

    Indicates an error during one of the methods in scala.reflect.macros.Typers.

15. #### trait Typers extends AnyRef

    EXPERIMENTAL

16. #### case class UnexpectedReificationException(pos: Position, msg: String, cause: Throwable = null) extends Exception with Product with Serializable

    Indicates an unexpected expected error during one of the `reifyXXX` methods in scala.reflect.macros.Reifiers.

17. #### abstract class Universe extends api.Universe

    EXPERIMENTAL

18. #### type Context = macros.whitebox.Context

    The Scala macros context.

    The Scala macros context.

    In Scala 2.11, macros that were once the one are split into blackbox and whitebox macros, with the former being better supported and the latter being more powerful. You can read about the details of the split and the associated trade-offs in the Macros Guide.

    `scala.reflect.macros.Context` follows this tendency and turns into `scala.reflect.macros.blackbox.Context` and `scala.reflect.macros.whitebox.Context`. The original `Context` is left in place for compatibility reasons, but it is now deprecated, nudging the users to choose between blackbox and whitebox macros.

    Annotations
      @deprecated
    Deprecated

      (Since version 2.11.0) Use blackbox.Context or whitebox.Context instead

### Value Members

1. #### package blackbox

2. #### package whitebox

### Inherited from AnyRef

### Inherited from Any

### Ungrouped