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

Import shadows def in other unit, per spec #6589

Merged
merged 10 commits into from Jun 13, 2018

Conversation

Projects
None yet
7 participants
@som-snytt
Copy link
Contributor

som-snytt commented May 2, 2018

Forward port of #5339 .

Fixes scala/bug#2458
Fixes scala/bug#9552

@scala-jenkins scala-jenkins added this to the 2.13.0-M5 milestone May 2, 2018

@som-snytt som-snytt force-pushed the som-snytt:topic/important branch 4 times, most recently from 348fe23 to 8784687 May 3, 2018

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented May 3, 2018

NB: two import fixes were still required, two others in tests pass after "Forgive import ambiguity". Those changes squashed in lead commit.

@som-snytt

This comment was marked as resolved.

Copy link
Contributor

som-snytt commented May 4, 2018

/rebuild

@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented May 4, 2018

/synch

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented May 4, 2018

Even Seth doesn't know the password.

Hey, how can settings be broken already? I'm only creating a -Y option that forks language semantics.

Edit: rebased

@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented May 4, 2018

/synch goddamn it Scabot or I'll come over and put my foot right through your circuits

@hrhino

This comment has been minimized.

Copy link
Member

hrhino commented May 4, 2018

"important" is clever but the previous PR had the benefit of iambic trochaic pentameter.

@som-snytt som-snytt force-pushed the som-snytt:topic/important branch from 8784687 to 9a4bcc0 May 7, 2018

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented May 31, 2018

Sample erroneous shadowing. The import java.util isn't used, of course.

[warn] /home/amarki/projects/scala/test/junit/scala/tools/nsc/DeterminismTest.scala:5: imported `util' is permanently hidden by definition of package util in package nsc
@lrytz
Copy link
Member

lrytz left a comment

I think we should split out the -Yimports change into a separate PR.

The changes should come with tests.

Could you also summarize the changes in the commit messages?

What's the reason for changing the imports (the second commit)?

val pkg = sym.enclosingPackage.name
!unitDefinesClassOrObject(pkg, sym.name) && !hasExplicitImport(body, pkg, sym.name)
}
if (!ok) report(sym)

This comment has been minimized.

@lrytz
@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 8, 2018

I was hoping for feedback on simple -Yimports versus the other proposal, but I think the folks who want the mechanism are just using Haskell.

The imports in the few changed files are ambiguous.

Very well, I'll split out -Yimports; I don't think the code requires working imports, but using them correctly does. I think that these two-year-old PRs are more likely to die on the vine again.

The linked PR on 2.12 has full commit messages; I didn't expect it to get shut down.

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 8, 2018

Also, the other PR includes the spec change for the precedence of "root" imports. As the message here says, this was a minimal forward port.

@lrytz

This comment has been minimized.

Copy link
Member

lrytz commented Jun 8, 2018

I definitely like what I saw from -Yimports, but I didn't test it locally to see what it does in detail. Reverse-engineering all corner cases from looking at the code was a bit too hard, so either test cases or more description would help discussing the proposal.

The imports in the few changed files are ambiguous.

It confused me that the commit fixing imports comes after the change to imports handling. But now I see that's a case of https://help.github.com/articles/why-are-my-commits-in-the-wrong-order

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 8, 2018

That just happened to me on another PR. I'll rebase and recreate commits here, adding what's missing from the 2.12 PR. Thanks for taking a look. I have high hopes for -Yimports, especially as a way for newbies to auto-import implicits, such as ExecutionContext.Implicits etc.

som-snytt added some commits Jun 8, 2018

Fix ambiguous imports by the spec
For example,
```
import p._ ; package p { S }
```
where S is both made available in p and also explicitly
imported in enclosing scope.

The usage S is ambiguous because it must not shadow the import.
Follow precedence rules for name binding
Fixes the implementation of point 4. from SLS chapter 2:

> Definitions made available by a package clause not in the
> compilation unit where the reference occurs have lowest precedence.

The implementation walks the context chain, but tries to be smart
about how far it must walk, checking whether it has risen to an
adequate depth. This check was previously broken for this case.
Update spec for name binding
"Root" imports, implicitly supplied by the compiler,
are lowest precedence.
Forgive import ambiguity at level 4 binding
If a definition and an import introduce an ambiguity,
because the definition is at level 4 binding
precedence, but imported symbol is just the definition,
then ignore the import at that location.

The pos test for ambiguous import was failing before.
Clarify neg test for ambiguous import
Add words and counterexamples.

@som-snytt som-snytt force-pushed the som-snytt:topic/important branch from 9a4bcc0 to 48fb060 Jun 8, 2018

@som-snytt som-snytt changed the title important Import shadows def in other unit, per spec Jun 8, 2018

xuwei-k added a commit to json4s/json4s that referenced this pull request Jun 14, 2018

try fix compile errors with latest Scala 2.13
- scala/scala#6589
- https://scala-ci.typesafe.com/job/scala-2.13.x-integrate-community-build/1173/consoleFull

```
[json4s] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.12/project-builds/json4s-5e2bb24c45d7144493d53aaf2ebf581a440d4739/core/src/main/scala/org/json4s/reflect/Reflector.scala:119: class Executable is abstract; cannot be instantiated
[json4s] [error]         er.getConstructors.map(new Executable(_))
[json4s] [error]                                ^
[json4s] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.12/project-builds/json4s-5e2bb24c45d7144493d53aaf2ebf581a440d4739/core/src/main/scala/org/json4s/reflect/Reflector.scala:119: polymorphic expression cannot be instantiated to expected type;
[json4s] [error]  found   : [B]Array[B]
[json4s] [error]  required: Iterable[java.lang.reflect.Executable]
[json4s] [error]         er.getConstructors.map(new Executable(_))
[json4s] [error]                               ^
[json4s] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.12/project-builds/json4s-5e2bb24c45d7144493d53aaf2ebf581a440d4739/core/src/main/scala/org/json4s/reflect/Reflector.scala:130: class Executable is abstract; cannot be instantiated
[json4s] [error]         val applyExecutables = applyMethods.map{ m => new Executable(m) }
[json4s] [error]                                                       ^
[json4s] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.12/project-builds/json4s-5e2bb24c45d7144493d53aaf2ebf581a440d4739/core/src/main/scala/org/json4s/reflect/Reflector.scala:138: type mismatch;
[json4s] [error]  found   : Executable (in java.lang.reflect) 
[json4s] [error]  required: Executable (in org.json4s.reflect) 
[json4s] [error]           allCatch opt { paramNameReader.lookupParameterNames(ctor) } getOrElse Nil
[json4s] [error]                                                               ^
[json4s] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.12/project-builds/json4s-5e2bb24c45d7144493d53aaf2ebf581a440d4739/core/src/main/scala/org/json4s/reflect/Reflector.scala:160: type mismatch;
[json4s] [error]  found   : Executable (in java.lang.reflect) 
[json4s] [error]  required: Executable (in org.json4s.reflect) 
[json4s] [error]         ConstructorDescriptor(ctorParams, ctor, isPrimary = ctor.getMarkedAsPrimary())
[json4s] [error]                                           ^
```
@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented Jun 16, 2018

I'm certainly seeing other projects in the community build needing changes because of this.. specs2 and ScalaTest, for two. They are similar to the changes described in Som's last comment — wildcard imports now pulling in identifiers that change the meaning of subsequent imports.

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 16, 2018

@SethTisue is there a quickie link to the build? so I can see what is failing? thx.

I realize it may take a few minutes for you to notice that your phone is buzzing with a github notification; those swanky bistros can get noisy around brunch time.

@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented Jun 16, 2018

for specs2, check out the master branch and do ++2.13.0-pre-1a172fd! then set every scalaBinaryVersion := "2.13.0-M4" then coreJVM/Test/compile

for scalatest, check out the community-build-2.13 branch of the scalacommunitybuild fork, then ++2.13.0-pre-1a172fd, set every scalaBinaryVersion := "2.13.0-M4", scalatest/test:compile

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 16, 2018

I never know what to try a build against. Scalatest has a branch called funkiness, which sounds like something I should build

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 16, 2018

OK, thanks @SethTisue and jinx.

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 16, 2018

I didn't understand scalacommunitybuild fork, so I guess I'll try specs2, which I assumed to be harder.

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 16, 2018

This is why Seth is Seth.

sbt.librarymanagement.ResolveException: download failed: org.kohsuke#github-api;1.92!github-api.jar

The other day, my Java friend was struggling to use jaxb (!) when I said I forgot Kohsuke worked on that stuff.

And I can't get the specs2 build to download the dependency either. I don't know the trailing ! syntax, but I tried w/w/out ! or SNAPSHOT.

[error] sbt.librarymanagement.ResolveException: unresolved dependency: org.scala-lang#scala-library;2.13.0-pre-1a172fd: not found

I don't know why anyone coined the term "dependency hell."

Wait, did I just spend an hour on that? I just want to run a build. I don't even want to restarr anything.

@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented Jun 16, 2018

I didn't understand scalacommunitybuild fork

https://github.com/scalacommunitybuild/scalatest/tree/community-build-2.13

I don't know the trailing ! syntax

sbt 1 changed ++ to only operate on subprojects that already have the specified version listed in crossScalaVersions, but you can override that with !, a syntax that 0.13 doesn't recognize. ScalaTest is built with sbt 0.13, specs with sbt 1

to get 2.13.0-pre-1a172fd you need resolvers += "scala-integration" at "https://scala-ci.typesafe.com/artifactory/scala-integration/"

I don't know, offhand, why org.kohsuke#github-api would fail to resolve for you.

a recent 2.13 community build log is https://scala-ci.typesafe.com/job/scala-2.13.x-integrate-community-build/1182/consoleFull

@som-snytt

This comment has been minimized.

Copy link
Contributor

som-snytt commented Jun 16, 2018

Sorry to be lame. Why is there git blame but not git lame? Thought I'd clear up sbt-io:

sbt:IO Root> 
sbt:IO Root> set resolvers += "pr" at "https://scala-ci.typesafe.com/artifactory/scala-pr-validation-snapshots/"
[info] Defining resolvers
[info] The new value will be used by externalResolvers
[info] Reapplying settings...
[info] Set current project to IO Root (in build file:/Users/andrew/workspace/sbt-io/)
sbt:IO Root> ++2.13.0-pre-1a172fd!
[info] Forcing Scala version to 2.13.0-pre-1a172fd on all projects.
[info] Reapplying settings...
[info] Set current project to IO Root (in build file:/Users/andrew/workspace/sbt-io/)
sbt:IO Root> set every scalaBinaryVersion := "2.13.0-M4"
[info] Defining Global / scalaBinaryVersion, ThisBuild / scalaBinaryVersion and 3 others.
[info] The new values will be used by Compile / compileAnalysisFilename, Compile / packageBin / artifactPath and 37 others.
[info] 	Run `last` for details.
[info] Reapplying settings...
[info] Set current project to IO Root (in build file:/Users/andrew/workspace/sbt-io/)
sbt:IO Root> 

but that fails to resolve the compiler artifacts. Probably I'm doing something basically wrong.

org.scala-lang#scala-library;2.13.0-pre-1a172fd: not found

It's a breezy day here and the little bistro table we got for the patio with an umbrella just blew over. So I just came out to sit in the sun. The heavy chimes from Costco which never chime are chiming. The weird grassy thing that grew last year that looks like corn as in maize which I love but the spouse doesn't, stares me down. Dare I transplant it to outside the fence?

You can tell I've been reading Wallace Stevens lately.

@sjrd

This comment has been minimized.

Copy link
Member

sjrd commented Jun 16, 2018

Try

set resolvers in Global += ...

That's what I always use. It's necessary if there are multiple projects in the build.

sjrd added a commit to sjrd/scala-js that referenced this pull request Jun 17, 2018

Adapt some imports after the change of precedence in 2.13.0-M5.
Precedence of imports wrt. symbols in the current package (but in
a different compilation unit) has been changed in 2.13.0-M5. See
scala/scala#6589.

This caused some breakages in our codebase, of course, which this
commit fixes.

retronym added a commit to retronym/compiler-benchmark that referenced this pull request Jun 18, 2018

@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented Jun 28, 2018

ScalaTest diffs: scalacommunitybuild/scalatest@448a22c (maybe not stylistically the best, perhaps I should have made the import org.scalactic._ changes go in the opt-in direction rather than the FooBar => _ opt-out direction I chose... idk)

@@ -1250,12 +1273,18 @@ trait Contexts { self: Analyzer =>
}
}

} //class Context
def isPackageOwnedInDifferentUnit(s: Symbol): Boolean =
if (s.isOverloaded) s.alternatives.exists(isPackageOwnedInDifferentUnit)

This comment has been minimized.

@adriaanm

adriaanm Jun 28, 2018

Member

How can a package-owned symbol be overloaded?

This comment has been minimized.

@som-snytt

som-snytt Jun 28, 2018

Contributor

package object?

This comment has been minimized.

@adriaanm

adriaanm Jun 28, 2018

Member

Good point! Hadn't considered those... FTR, had to convince myself in the REPL:

scala> val s = typeOf[scala.Error].typeSymbolDirect // type alias defined in the scala package object
s: $r.intp.global.Symbol = type Error

scala> s.isDefinedInPackage
res24: Boolean = true

scala> s.effectiveOwner
res26: $r.intp.global.Symbol = package scala

scala> s.effectiveOwner.hasPackageFlag
res27: Boolean = true

scala> s.owner
res28: $r.intp.global.Symbol = package object scala

scala> s.owner.hasPackageFlag
res29: Boolean = false
@SethTisue

This comment has been minimized.

Copy link
Member

SethTisue commented Jun 29, 2018

specs2 diffs — this one was easier

xuwei-k added a commit to xuwei-k/specs2 that referenced this pull request Aug 5, 2018

fix compile error with latest Scala 2.13.x
maybe due to scala/scala#6589

https://scala-ci.typesafe.com/job/scala-2.13.x-integrate-community-build/1302/consoleFull

```
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:62:31: too many arguments (2) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]   val nameProp = Prop("name", "eric")
[specs2-more] [error]                               ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:63:18: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]   val noValues = new Prop("name")
[specs2-more] [error]                  ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:64:25: type mismatch;
[specs2-more] [error]  found   : Int(18)
[specs2-more] [error]  required: String
[specs2-more] [error]   val actualOnly = Prop(18)
[specs2-more] [error]                         ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:65:22: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]   val expectedOnly = new Prop("", Property(), Property(18))
[specs2-more] [error]                      ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:66:20: wrong number of type arguments for scala.sys.Prop, should be 1
[specs2-more] [error]   val constrained: Prop[String, String] = Prop("name", "eric", (s1: String, s2: String) => s1 must contain(s2))
[specs2-more] [error]                    ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:66:56: too many arguments (3) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]   val constrained: Prop[String, String] = Prop("name", "eric", (s1: String, s2: String) => s1 must contain(s2))
[specs2-more] [error]                                                        ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:67:34: too many arguments (3) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]   val withMatcher = Prop("name", "eric", contain(_:String))
[specs2-more] [error]                                  ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:75:20: too many arguments (3) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]     e6 := Prop("", 1, be_>(0).mute).execute    === Success("")
[specs2-more] [error]                    ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:76:20: 3 more arguments than can be applied to method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]     e7 := Prop("", 1, 2, be_>(0).mute).execute === Success("")
[specs2-more] [error]                    ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:80:11: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]     e1 := new Prop("name", expected = Property("fanny")).toString       === "name: _ (expected: fanny)"
[specs2-more] [error]           ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:80:28: not found: value expected
[specs2-more] [error]     e1 := new Prop("name", expected = Property("fanny")).toString       === "name: _ (expected: fanny)"
[specs2-more] [error]                            ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:81:11: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]     e2 := new Prop("name", actual = Property("eric")).toString          === "name: eric"
[specs2-more] [error]           ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:81:28: not found: value actual
[specs2-more] [error]     e2 := new Prop("name", actual = Property("eric")).toString          === "name: eric"
[specs2-more] [error]                            ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:82:11: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]     e3 := new Prop("name", Property("eric"), Property("eric")).toString === "name: eric"
[specs2-more] [error]           ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:86:24: too many arguments (2) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]     e1 := Prop("name", "eric")("paolo").expected.toOption must_== Some("paolo")
[specs2-more] [error]                        ^
[specs2-more] [error] 15 errors found
[specs2-more] [error] (form / Test / compileIncremental) Compilation failed
```

etorreborre added a commit to etorreborre/specs2 that referenced this pull request Aug 5, 2018

fix compile error with latest Scala 2.13.x (#698)
maybe due to scala/scala#6589

https://scala-ci.typesafe.com/job/scala-2.13.x-integrate-community-build/1302/consoleFull

```
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:62:31: too many arguments (2) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]   val nameProp = Prop("name", "eric")
[specs2-more] [error]                               ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:63:18: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]   val noValues = new Prop("name")
[specs2-more] [error]                  ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:64:25: type mismatch;
[specs2-more] [error]  found   : Int(18)
[specs2-more] [error]  required: String
[specs2-more] [error]   val actualOnly = Prop(18)
[specs2-more] [error]                         ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:65:22: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]   val expectedOnly = new Prop("", Property(), Property(18))
[specs2-more] [error]                      ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:66:20: wrong number of type arguments for scala.sys.Prop, should be 1
[specs2-more] [error]   val constrained: Prop[String, String] = Prop("name", "eric", (s1: String, s2: String) => s1 must contain(s2))
[specs2-more] [error]                    ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:66:56: too many arguments (3) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]   val constrained: Prop[String, String] = Prop("name", "eric", (s1: String, s2: String) => s1 must contain(s2))
[specs2-more] [error]                                                        ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:67:34: too many arguments (3) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]   val withMatcher = Prop("name", "eric", contain(_:String))
[specs2-more] [error]                                  ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:75:20: too many arguments (3) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]     e6 := Prop("", 1, be_>(0).mute).execute    === Success("")
[specs2-more] [error]                    ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:76:20: 3 more arguments than can be applied to method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]     e7 := Prop("", 1, 2, be_>(0).mute).execute === Success("")
[specs2-more] [error]                    ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:80:11: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]     e1 := new Prop("name", expected = Property("fanny")).toString       === "name: _ (expected: fanny)"
[specs2-more] [error]           ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:80:28: not found: value expected
[specs2-more] [error]     e1 := new Prop("name", expected = Property("fanny")).toString       === "name: _ (expected: fanny)"
[specs2-more] [error]                            ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:81:11: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]     e2 := new Prop("name", actual = Property("eric")).toString          === "name: eric"
[specs2-more] [error]           ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:81:28: not found: value actual
[specs2-more] [error]     e2 := new Prop("name", actual = Property("eric")).toString          === "name: eric"
[specs2-more] [error]                            ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:82:11: trait Prop is abstract; cannot be instantiated
[specs2-more] [error]     e3 := new Prop("name", Property("eric"), Property("eric")).toString === "name: eric"
[specs2-more] [error]           ^
[specs2-more] [error] /home/jenkins/workspace/scala-2.13.x-integrate-community-build/target-0.9.13/project-builds/specs2-more-db45127d55bd79c54d280645a81534fbc13e7a8b/form/src/test/scala/org/specs2/form/PropSpec.scala:86:24: too many arguments (2) for method apply: (key: String)(implicit evidence$1: sys.Prop.Creator[T])scala.sys.Prop[T] in object Prop
[specs2-more] [error]     e1 := Prop("name", "eric")("paolo").expected.toOption must_== Some("paolo")
[specs2-more] [error]                        ^
[specs2-more] [error] 15 errors found
[specs2-more] [error] (form / Test / compileIncremental) Compilation failed
```

@som-snytt som-snytt deleted the som-snytt:topic/important branch Aug 5, 2018

@raboof raboof referenced this pull request Dec 5, 2018

Merged

scala 2.13.0-M5 support #26043

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