Skip to content

Commit

Permalink
Merge pull request #9279 from octonato/rgc/fix-classOf-object
Browse files Browse the repository at this point in the history
Allow using classOf with object type
  • Loading branch information
SethTisue committed Nov 10, 2020
2 parents 7e9fd55 + 0f9911c commit 53bb32b
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/reflect/scala/reflect/internal/Types.scala
Expand Up @@ -4752,7 +4752,7 @@ trait Types
/** def isNonValueType(tp: Type) = !isValueElseNonValue(tp) */

def isNonRefinementClassType(tpe: Type) = tpe match {
case SingleType(_, sym) => sym.isModuleClass
case SingleType(_, sym) => sym.isModuleOrModuleClass
case TypeRef(_, sym, _) => sym.isClass && !sym.isRefinementClass
case ErrorType => true
case _ => false
Expand Down
10 changes: 10 additions & 0 deletions test/files/pos/classOfObjectType/AnnotationWithClassType.java
@@ -0,0 +1,10 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationWithClassType {
Class<?> cls();
}
7 changes: 7 additions & 0 deletions test/files/pos/classOfObjectType/Foo.scala
@@ -0,0 +1,7 @@

object Bar

trait Foo {
@AnnotationWithClassType(cls = classOf[Bar.type])
def function: Any = ???
}
7 changes: 7 additions & 0 deletions test/files/run/classOfObjectType.scala
@@ -0,0 +1,7 @@

object Test {
object Bar
def main(args: Array[String]): Unit = {
assert(Bar.getClass == classOf[Bar.type] )
}
}

0 comments on commit 53bb32b

Please sign in to comment.