- Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
Currently blocking #20222
Compiler version
The main branch
3.5.0-RC1-bin-SNAPSHOT-nonbootstrapped-git-7291e54
Minimized code
Predef.scala
import scala.annotation.experimental extension (inline opt: Option.type) @experimental inline def fromNullable[T](t: T | Null): Option[T] = Option(t).asInstanceOfOutput
> clean; scalac [error] -- [E046] Cyclic Error: /dotty/library/src-non-bootstrapped/scala/annotation/experimental.scala:3:1 [error] 3 |@deprecatedInheritance("Scheduled for being final in the future", "3.4.0") [error] | ^ [error] | Cyclic reference involving class experimental [error] | [error] | Run with -explain-cyclic for more details. [error] | [error] | longer explanation available when compiling with `-explain` [error] -- [E008] Not Found Error: /dotty/library/src/scala/quoted/Expr.scala:70:17 [error] 70 | scala.Predef.summon[ToExpr[T]].apply(x) [error] | ^^^^^^^^^^^^^^^^^^^ [error] | value summon is not a member of object Predef [error] -- [E008] Not Found Error: /dotty/library/src/scala/quoted/Expr.scala:85:17 [error] 85 | scala.Predef.summon[FromExpr[T]].unapply(x) [error] | ^^^^^^^^^^^^^^^^^^^ [error] | value summon is not a member of object Predef [error] -- [E006] Not Found Error: /dotty/library/src/scala/quoted/Quotes.scala:68:6 [error] 68 | summon[FromExpr[T]].unapply(self) [error] | ^^^^^^ [error] | Not found: summon [error] | [error] | longer explanation available when compiling with `-explain` [error] -- [E006] Not Found Error: /dotty/library/src/scala/quoted/Quotes.scala:77:21 [error] 77 | val fromExpr = summon[FromExpr[T]] [error] | ^^^^^^ [error] | Not found: summon [error] | [error] | longer explanation available when compiling with `-explain` [error] -- [E006] Not Found Error: /dotty/library/src/scala/quoted/ToExpr.scala:100:46 [error] 100 | '{ Array[T](${Expr(arr.toSeq)}*)(${Expr(summon[ClassTag[T]])}) } [error] | ^^^^^^ [error] | Not found: summon [error] | [error] | longer explanation available when compiling with `-explain` [error] -- [E006] Not Found Error: /dotty/library/src/scala/quoted/ToExpr.scala:168:24 [error] 168 | Expr.ofSeq(xs.map(summon[ToExpr[T]].apply)) [error] | ^^^^^^ [error] | Not found: summon [error] | [error] | longer explanation available when compiling with `-explain` [error] -- [E006] Not Found Error: /dotty/library/src/scala/quoted/ToExpr.scala:174:25 [error] 174 | Expr.ofList(xs.map(summon[ToExpr[T]].apply)) [error] | ^^^^^^ [error] | Not found: summon [error] | [error] | longer explanation available when compiling with `-explain` [error] -- [E008] Not Found Error: /dotty/library/src/scala/reflect/Selectable.scala:24:60 [error] 24 | val fld = rcls.getField(NameTransformer.encode(name)).nn [error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of java.lang.reflect.Field | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] -- [E008] Not Found Error: /dotty/library/src/scala/reflect/Selectable.scala:38:72 [error] 38 | val mth = rcls.getMethod(NameTransformer.encode(name), paramTypes*).nn [error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of java.lang.reflect.Method | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] -- [E008] Not Found Error: /dotty/library/src/scala/runtime/LazyVals.scala:18:79 [error] 18 | val unsafeField = classOf[sun.misc.Unsafe].getDeclaredField("theUnsafe").nn [error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of java.lang.reflect.Field | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] -- [E008] Not Found Error: /dotty/library/src/scala/runtime/LazyVals.scala:29:50 [error] 29 | val processors = java.lang.Runtime.getRuntime.nn.availableProcessors() [error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of Runtime | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] -- [E008] Not Found Error: /dotty/library/src/scala/runtime/coverage/Invoker.scala:54:66 [error] 54 | MeasurementsPrefix + runtimeUUID + "." + Thread.currentThread.nn.getId [error] | ^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of Thread | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] -- [E046] Cyclic Error: /dotty/library/src/scala/runtime/stdLibPatches/Predef.scala:68:15 [error] 68 | inline def fromNullable[T](t: T | Null): Option[T] = Option(t).asInstanceOf [error] | ^ [error] | Cyclic reference involving method fromNullable [error] | [error] | Run with -explain-cyclic for more details. [error] | [error] | longer explanation available when compiling with `-explain` [warn] -- Warning: /dotty/library/src/scala/runtime/stdLibPatches/Predef.scala:64:10 [warn] 64 | !(x eq y) [warn] | ^^ [warn] |Alphanumeric method eq is not declared infix; it should not be used as infix operator. [warn] |Instead, use method syntax .eq(...) or backticked identifier `eq`. [warn] |The latter can be rewritten automatically under -rewrite -source 3.4-migration. [error] -- [E008] Not Found Error: /dotty/library/src/scala/util/FromDigits.scala:138:56 [error] 138 | if (x == 0.0f && !zeroFloat.pattern.matcher(digits).nn.matches) throw NumberTooSmall() [error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of java.util.regex.Matcher | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] -- [E008] Not Found Error: /dotty/library/src/scala/util/FromDigits.scala:156:56 [error] 156 | if (x == 0.0d && !zeroFloat.pattern.matcher(digits).nn.matches) throw NumberTooSmall() [error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [error] |value nn is not a member of java.util.regex.Matcher | Null, but could be made available as an extension method. [error] | [error] |The following import might fix the problem: [error] | [error] | import scala.runtime.stdLibPatches.Predef.nn [error] | [error] No warnings can be incurred under -Werror (or -Xfatal-warnings) [warn] one warning found [error] 17 errors found [error] (scala3-library / Compile / compileIncremental) Compilation failed [error] Total time: 6 s, completed 18 Apr 2024, 14:59:41Expectation
Should be able to use experimental annotation in library to add new functions.