sbt/compile/interface/src/main/scala/xsbt
Martin Duhem a80966e394 Handle macros that have themselves as original tree
It has been reported in sbt/sbt#1237 that stack overflows may occur during the
extraction of used names (and later of dependencies between files). This
problem has been introduced by sbt/sbt#1163, which was about recording the
dependencies of macro arguments.

When a macro is expanded, the compiler attaches the tree before expansion to
the tree representing the expanded macro. As of Scala 2.11-RC3, some macros
have themselves attached as original tree, which caused the same macro to be
inspected over and over until a stack overflow.

This commit solves this problem by making sure that the original of a macro
expansion will be inspected if and only if it is different from the expanded
tree.

Fixes sbt/sbt#1237
2014-04-07 11:33:47 +02:00
..
API.scala Add support for tracking names used in Scala source files. 2013-12-03 12:27:29 +01:00
Analyzer.scala Move dependency extraction into separate compiler phase. 2013-10-24 16:44:45 +02:00
Command.scala Make the DelegatingReporter aware of -nowarn 2013-09-05 13:31:04 -04:00
Compat.scala Record dependencies on macro arguments 2014-03-19 22:14:58 +01:00
CompilerInterface.scala Remove long comment that explains phase ordering issues. 2013-10-24 16:44:46 +02:00
ConsoleInterface.scala Use IMain.bindValue to bind repl values. This does a better job of getting the type to use for a bound value. 2013-07-17 14:58:53 -04:00
DelegatingReporter.scala Make the DelegatingReporter aware of -nowarn 2013-09-05 13:31:04 -04:00
Dependency.scala Handle macros that have themselves as original tree 2014-04-07 11:33:47 +02:00
ExtractAPI.scala Fix unstable existential type names bug. 2013-10-29 16:39:50 +01:00
ExtractUsedNames.scala Handle macros that have themselves as original tree 2014-04-07 11:33:47 +02:00
LocateClassFile.scala Factor out class file lookup out of Analyzer class. 2013-07-23 17:11:42 -07:00
Log.scala Follow source layout convention supported by Eclipse. 2012-12-07 10:27:08 -08:00
Message.scala Follow source layout convention supported by Eclipse. 2012-12-07 10:27:08 -08:00
ScaladocInterface.scala Follow source layout convention supported by Eclipse. 2012-12-07 10:27:08 -08:00