summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-10-22 21:09:11 +0000
committerPaul Phillips <paulp@improving.org>2011-10-22 21:09:11 +0000
commit290f687fb6ab91b6aef62d871036ddc3829f12b4 (patch)
treea55663699fa69315ba4e640252cc6694cbd805d6 /src/compiler/scala/reflect/internal/Symbols.scala
parent0c97d8c73fdf4e1dd33ee98ea2e14bc51388bb5f (diff)
downloadscala-290f687fb6ab91b6aef62d871036ddc3829f12b4.tar.gz
scala-290f687fb6ab91b6aef62d871036ddc3829f12b4.tar.bz2
scala-290f687fb6ab91b6aef62d871036ddc3829f12b4.zip
Overhaul of Namers continues.
Starting to see a glimmer of the other side now. I nudged a few things into more sensible places. No review.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Symbols.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala
index 00e9200076..cb4d2bbf94 100644
--- a/src/compiler/scala/reflect/internal/Symbols.scala
+++ b/src/compiler/scala/reflect/internal/Symbols.scala
@@ -91,8 +91,16 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
new MethodSymbol(this, pos, name).setFlag(METHOD)
final def newLabel(pos: Position, name: TermName) =
newMethod(pos, name).setFlag(LABEL)
+
+ /** Propagates ConstrFlags (JAVA, specifically) from owner to constructor. */
final def newConstructor(pos: Position) =
- newMethod(pos, nme.CONSTRUCTOR)
+ newMethod(pos, nme.CONSTRUCTOR) setFlag getFlag(ConstrFlags)
+ /** Static constructor with info set. */
+ def newStaticConstructor(pos: Position) =
+ newConstructor(pos) setFlag STATIC setInfo UnitClass.tpe
+ /** Instance constructor with info set. */
+ def newClassConstructor(pos: Position) =
+ newConstructor(pos) setInfo MethodType(Nil, this.tpe)
private def finishModule(m: ModuleSymbol, clazz: ClassSymbol): ModuleSymbol = {
// Top-level objects can be automatically marked final, but others