Skip to content

macro engine shouldn't allow private methods to leak into macro expansions #5755

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
scabug opened this issue May 3, 2012 · 3 comments
Closed
Assignees

Comments

@scabug
Copy link

scabug commented May 3, 2012

import scala.reflect.makro.Context

object Macros {
  private def veryPrivate = println("secrets leaked!!!")

  def impl(c: Context) = c.reify(veryPrivate)

  def foo = macro impl
}
object Test extends App {
  Macros.foo
}
Test_2.scala:2: error: method veryPrivate in object Macros cannot be accessed in object Macros
  Macros.foo
         ^
one error found
@scabug
Copy link
Author

scabug commented May 3, 2012

Imported From: https://issues.scala-lang.org/browse/SI-5755?orig=1
Reporter: @xeno-by
Affected Versions: 2.10.0-M3
Duplicates #8066

@scabug
Copy link
Author

scabug commented May 3, 2012

@xeno-by said:
We should have a special check for that, akin to the free terms / free types check.

@scabug
Copy link
Author

scabug commented Dec 11, 2013

@xeno-by said:
Duplicated by #8066

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants