summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/compiler/scala/tools/nsc/doc/model/IndexModelFactory.scala1
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala6
-rw-r--r--test/files/neg/t5031.check5
-rw-r--r--test/files/neg/t5031/Id.scala4
-rw-r--r--test/files/neg/t5031/package.scala3
-rw-r--r--test/files/pos/t5031/Id.scala4
-rw-r--r--test/files/pos/t5031/package.scala3
-rw-r--r--test/files/pos/t5031_2.scala7
8 files changed, 28 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/model/IndexModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/IndexModelFactory.scala
index f4c96505a7..9d141efe0a 100755
--- a/src/compiler/scala/tools/nsc/doc/model/IndexModelFactory.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/IndexModelFactory.scala
@@ -8,7 +8,6 @@ package doc
package model
import scala.collection._
-import language.reflectiveCalls
object IndexModelFactory {
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 959d4d31ee..e6a9cb46c6 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -1760,7 +1760,6 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
/** Is this symbol defined in the same scope and compilation unit as `that` symbol? */
def isCoDefinedWith(that: Symbol) = {
- import language.reflectiveCalls
(this.rawInfo ne NoType) &&
(this.effectiveOwner == that.effectiveOwner) && {
!this.effectiveOwner.isPackageClass ||
@@ -2431,7 +2430,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
override def moduleClass = referenced
override def companionClass =
- flatOwnerInfo.decl(name.toTypeName).suchThat(_ isCoDefinedWith this)
+ flatOwnerInfo.decl(name.toTypeName).suchThat(sym => sym.isClass && (sym isCoDefinedWith this))
override def owner = {
Statistics.incCounter(ownerCount)
@@ -2796,7 +2795,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
*/
protected final def companionModule0: Symbol =
flatOwnerInfo.decl(name.toTermName).suchThat(
- sym => sym.hasFlag(MODULE) && (sym isCoDefinedWith this) && !sym.isMethod)
+ sym => sym.isModule && (sym isCoDefinedWith this) && !sym.isMethod)
override def companionModule = companionModule0
override def companionSymbol = companionModule0
@@ -3119,7 +3118,6 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
}
case class InvalidCompanions(sym1: Symbol, sym2: Symbol) extends Throwable({
- import language.reflectiveCalls
"Companions '" + sym1 + "' and '" + sym2 + "' must be defined in same file:\n" +
" Found in " + sym1.sourceFile.canonicalPath + " and " + sym2.sourceFile.canonicalPath
}) {
diff --git a/test/files/neg/t5031.check b/test/files/neg/t5031.check
new file mode 100644
index 0000000000..8983d8daf9
--- /dev/null
+++ b/test/files/neg/t5031.check
@@ -0,0 +1,5 @@
+Id.scala:3: error: Companions 'class Test' and 'object Test' must be defined in same file:
+ Found in t5031/package.scala and t5031/Id.scala
+object Test
+ ^
+one error found
diff --git a/test/files/neg/t5031/Id.scala b/test/files/neg/t5031/Id.scala
new file mode 100644
index 0000000000..2f0db002d2
--- /dev/null
+++ b/test/files/neg/t5031/Id.scala
@@ -0,0 +1,4 @@
+package t5031
+
+object Test
+
diff --git a/test/files/neg/t5031/package.scala b/test/files/neg/t5031/package.scala
new file mode 100644
index 0000000000..17b63220be
--- /dev/null
+++ b/test/files/neg/t5031/package.scala
@@ -0,0 +1,3 @@
+package object t5031 {
+ class Test
+}
diff --git a/test/files/pos/t5031/Id.scala b/test/files/pos/t5031/Id.scala
new file mode 100644
index 0000000000..7bc3ebd348
--- /dev/null
+++ b/test/files/pos/t5031/Id.scala
@@ -0,0 +1,4 @@
+package t5031
+
+object ID
+
diff --git a/test/files/pos/t5031/package.scala b/test/files/pos/t5031/package.scala
new file mode 100644
index 0000000000..c02e69db8e
--- /dev/null
+++ b/test/files/pos/t5031/package.scala
@@ -0,0 +1,3 @@
+package object t5031 {
+ type ID = Int
+}
diff --git a/test/files/pos/t5031_2.scala b/test/files/pos/t5031_2.scala
new file mode 100644
index 0000000000..ded3e82301
--- /dev/null
+++ b/test/files/pos/t5031_2.scala
@@ -0,0 +1,7 @@
+package object t5031 {
+ class ID
+}
+
+package t5031 {
+ object ID
+}