Skip to content

Upgrade to sbt 1 #3872

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

Merged
merged 107 commits into from
Apr 12, 2018
Merged
Changes from 1 commit
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
6aafb69
sbt 1.0.0-M6
smarter Jun 6, 2017
4ce83b8
Upgrade to sbt 1.0.0-M6
smarter Jun 6, 2017
c91171d
Fix sbt bridge
ttreyer May 10, 2017
024f5fb
Add method SymDenotation.isTopLevelClass
ttreyer May 10, 2017
e1018d1
Remove SimpleType
ttreyer May 15, 2017
7865186
Update bridge for compatibility with Zinc 1.0.0-X15
ttreyer May 21, 2017
3f8a49c
Fix for zinc 1.0.0-X16
smarter Jun 6, 2017
848e41b
ExtractAPI: fix children of sealed classes
smarter Jun 6, 2017
bfd2b0f
ExtractAPI: add missing startSource callback
smarter Jun 6, 2017
d3f50a4
Fix various issues
smarter Jun 6, 2017
f02dacb
Propagate class files through GenBCode pipeline
ttreyer Jun 7, 2017
d7dba97
Catch FileConflictException creating class files
ttreyer Jun 7, 2017
fb9c611
Adapt to latest Zinc
Duhemm Oct 12, 2017
aef68c2
Compile only the bridge, not the whole compiler
Duhemm Oct 28, 2017
0f13174
Adapt to new main class detection in Zinc 1
Duhemm Oct 20, 2017
323b451
Re-enable `dist-*` projects
Duhemm Oct 23, 2017
c05353a
Fix `bin/dot*` scripts
Duhemm Oct 23, 2017
4c91ed2
Fix `source-dependencies/abstract-type-override`
Duhemm Oct 20, 2017
2cf0abe
Fix `source-dependencies/transitive-memberRef`
Duhemm Oct 20, 2017
f232fbe
Disable `source-dependencies/inherited-deps-java`
Duhemm Oct 20, 2017
494beb9
Fix test `source-dependencies/compactify`
Duhemm Oct 20, 2017
b749648
Mark test `source-dependencies/binary` pending
Duhemm Oct 20, 2017
dd7841d
Fix test source-dependencies/export-jars
Duhemm Oct 20, 2017
98c9e8d
Update test `source-dependencies/import-class`
Duhemm Nov 7, 2017
479c6c2
Fix test source-dependencies/trait-member-modified
Duhemm Oct 20, 2017
240e133
Fix test source-dependencies/java-analyis-serialization-error
Duhemm Oct 20, 2017
08e09b8
Fix test source-dependencies/canon
Duhemm Oct 20, 2017
939dd31
Fix test source-dependencies/restore-classes
Duhemm Oct 20, 2017
4ee6fd5
Fix test source-dependencies/type-alias
Duhemm Oct 20, 2017
159a19e
Fix test source-dependencies/typeref-only
Duhemm Oct 20, 2017
149c8b1
Fix test source-dependencies/less-inter-inv-java
Duhemm Oct 20, 2017
389cdcc
Fix test source-dependencies/backtick-qupted-names
Duhemm Oct 20, 2017
ca77743
Fix test source-dependencies/replace-test-a
Duhemm Oct 20, 2017
e4f092d
Fix test source-dependencies/inherited_type_params
Duhemm Oct 20, 2017
ce237c7
Fix test source-dependencies/same-file-used-names
Duhemm Oct 20, 2017
b46a4b3
Fix test source-dependencies/ext
Duhemm Oct 20, 2017
9281d1c
Fix test source-dependencies/less-inter-inv
Duhemm Oct 20, 2017
ff34abb
Fix test sbt-dotty/example-project
Duhemm Oct 20, 2017
805eceb
Fix test compilerReporter/simple
Duhemm Oct 20, 2017
4475e9e
Fix test source-dependencies/value-class-underlying
Duhemm Oct 23, 2017
5b5b260
Disable test source-dependencies/trait-private-var
Duhemm Oct 20, 2017
df2ac08
Always run scripted tests
Duhemm Nov 6, 2017
d818a2c
Split scripted tests in two groups
Duhemm Nov 7, 2017
2075f13
Remove `Message` and `Log`
Duhemm Nov 7, 2017
39ac06b
Upgrade to sbt 1.0.3
Duhemm Nov 7, 2017
f35894c
Change name of scala-library jar in tests
Duhemm Nov 7, 2017
ef10d7c
Address review comments
Duhemm Nov 8, 2017
80d36d5
Port sbt/zinc#444
Duhemm Nov 8, 2017
7705124
Address review comments
Duhemm Nov 9, 2017
440f1ea
Merge branch 'master' into 'topic/sbt1'
allanrenucci Jan 19, 2018
a438ed6
Update dependencies and plugins version
allanrenucci Jan 19, 2018
6278264
Workaround sbt/sbt#3469
allanrenucci Jan 19, 2018
59a0e55
Fix merge breakages + Cleanup
allanrenucci Jan 19, 2018
a13bc6b
wip
allanrenucci Jan 23, 2018
3a60f32
Use mangledString instead of toString
allanrenucci Feb 19, 2018
cfded3e
Merge branch 'master' into topic/sbt1
allanrenucci Feb 19, 2018
a2d86e8
Use Dotty naming scheme and toString
allanrenucci Mar 1, 2018
4a74fb7
Strip module suffix for module class
allanrenucci Mar 1, 2018
88fb4ea
Fix separate compilation
allanrenucci Mar 5, 2018
fd5aa53
Fix binary class name for Java Symbol
allanrenucci Mar 5, 2018
9994ebf
Revert to old scheme for binary class name
allanrenucci Mar 5, 2018
cf20829
Small build cleanup
allanrenucci Mar 5, 2018
31a93a1
Merge two caches
allanrenucci Mar 6, 2018
96aa562
Simplify UsedName
allanrenucci Mar 6, 2018
bd2a665
Resolve dependency source
allanrenucci Mar 6, 2018
6b9aa1f
Rework type traverser
allanrenucci Mar 7, 2018
01d35ff
Rework inheritance dependencies
allanrenucci Mar 7, 2018
2db0047
Use Symbol instead of String for usedNames cache's key
allanrenucci Mar 7, 2018
26241d0
Cleanup
allanrenucci Mar 7, 2018
d56e34f
Record finer grained dependencies
allanrenucci Mar 7, 2018
5193632
Don't record dependency on package
allanrenucci Mar 7, 2018
452356b
Use non local enclosing class as dependency source
allanrenucci Mar 7, 2018
cdfa433
Optimise resolveDependencySource
allanrenucci Mar 7, 2018
8e3bad9
Address review comments
allanrenucci Mar 7, 2018
0c471e5
Fix resolveDependencySource
allanrenucci Mar 8, 2018
ac88395
Build cleanup
allanrenucci Mar 8, 2018
4b862f8
Add new tests from Zinc
allanrenucci Mar 8, 2018
97c5d92
Workaround the broken hashCode of api.* classes
smarter Mar 9, 2018
950735d
Fix/Disable newly added tests
allanrenucci Mar 9, 2018
6d339d0
Port Unit test from latest Zinc
allanrenucci Mar 9, 2018
b769005
Remove dependency on specs2
allanrenucci Mar 9, 2018
e4eed7b
Remove duplicate implementation of isLocal
allanrenucci Mar 13, 2018
ca2b2d5
Port sbt/zinc#288
allanrenucci Mar 13, 2018
5247afa
Remove useless test
allanrenucci Mar 13, 2018
881f1a8
Fix latest unit tests from Zinc
allanrenucci Mar 20, 2018
8c8a950
Small Cleanup
allanrenucci Mar 20, 2018
e2e6f7a
Merge branch 'master' into 'topic/sbt1'
allanrenucci Mar 20, 2018
e9223c1
Enable all tests
allanrenucci Mar 20, 2018
066a01c
Fix vulpix meta test
allanrenucci Mar 21, 2018
036a633
Remove dead code
allanrenucci Mar 21, 2018
0495c85
Only run sbt scripted tests on nightly or deployment
allanrenucci Mar 21, 2018
1776242
Update CI Docker Image
allanrenucci Mar 21, 2018
b088b84
Upgrade sbt to 1.1.2
smarter Mar 27, 2018
7020f13
Merge branch 'master' into 'topic/sbt1'
allanrenucci Mar 27, 2018
25e8c75
Don't use deprecated ScalaInstance constructor
allanrenucci Mar 27, 2018
482c65b
Improve name conflict warning for case-insensitive filesystems
allanrenucci Mar 28, 2018
67ff1f2
Use SAM type whenever possible
allanrenucci Mar 28, 2018
e78a3fb
Update docker image for sbt 1.1.2
allanrenucci Mar 29, 2018
7a99074
Reorder arguments in assertEquals according to the spec:
allanrenucci Mar 29, 2018
2d4c129
Merge branch 'master' into 'topic/sbt1'
allanrenucci Apr 3, 2018
f107d74
Enable sbt scripted tests
allanrenucci Apr 3, 2018
9e73aca
Upgrade to sbt 1.1.4
smarter Apr 9, 2018
3f3ab9a
Update docker image
allanrenucci Apr 10, 2018
08d8336
Fix publishing
allanrenucci Apr 12, 2018
a15d0cd
Cleanup build imports
allanrenucci Apr 12, 2018
096d0d3
Merge branch 'master' into 'topic/sbt1'
allanrenucci Apr 12, 2018
fed5232
Only run scripted tests on nightly
allanrenucci Apr 12, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Adapt to new main class detection in Zinc 1
  • Loading branch information
Duhemm committed Nov 13, 2017
commit 0f13174d61dc55e66ecafd9eed15f27b7d6a6856
35 changes: 30 additions & 5 deletions compiler/src/dotty/tools/dotc/sbt/ExtractAPI.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,28 @@ package dotty.tools.dotc
package sbt

import ast.{Trees, tpd}
import core._, core.Decorators._
import Annotations._, Contexts._, Flags._, Phases._, Trees._, Types._, Symbols._
import Names._, NameOps._, StdNames._
import core._
import core.Decorators._
import Annotations._
import Contexts._
import Flags._
import Phases._
import Trees._
import Types._
import Symbols._
import Names._
import NameOps._
import StdNames._
import NameKinds.DefaultGetterName
import typer.Inliner
import typer.ErrorReporting.cyclicErrorMsg
import transform.SymUtils._

import dotty.tools.io.Path
import java.io.PrintWriter

import dotty.tools.dotc.config.JavaPlatform
import xsbti.api.DefinitionType

import scala.collection.mutable

/** This phase sends a representation of the API of classes to sbt via callbacks.
Expand Down Expand Up @@ -51,6 +62,7 @@ class ExtractAPI extends Phase {

val apiTraverser = new ExtractAPICollector
val sources = apiTraverser.apiSource(unit.tpdTree)
val mainClasses = apiTraverser.mainClasses

if (dumpInc) {
// Append to existing file that should have been created by ExtractDependencies
Expand All @@ -61,8 +73,10 @@ class ExtractAPI extends Phase {
} finally pw.close()
}

if (ctx.sbtCallback != null)
if (ctx.sbtCallback != null) {
sources.foreach(ctx.sbtCallback.api(sourceFile.file, _))
mainClasses.foreach(ctx.sbtCallback.mainClass(sourceFile.file, _))
}
}
}
}
Expand Down Expand Up @@ -127,6 +141,7 @@ private class ExtractAPICollector(implicit val ctx: Context) extends ThunkHolder
private[this] val refinedTypeCache = new mutable.HashMap[(api.Type, api.Definition), api.Structure]

private[this] val allNonLocalClassesInSrc = new mutable.HashSet[xsbti.api.ClassLike]
private[this] val _mainClasses = new mutable.HashSet[String]

private[this] object Constants {
val emptyStringArray = Array[String]()
Expand Down Expand Up @@ -177,6 +192,11 @@ private class ExtractAPICollector(implicit val ctx: Context) extends ThunkHolder
def apiClass(sym: ClassSymbol): api.ClassLikeDef =
classLikeCache.getOrElseUpdate(sym, computeClass(sym))

def mainClasses: Set[String] = {
forceThunks()
_mainClasses.toSet
}

private def computeClass(sym: ClassSymbol): api.ClassLikeDef = {
import xsbti.api.{DefinitionType => dt}
val defType =
Expand Down Expand Up @@ -220,6 +240,11 @@ private class ExtractAPICollector(implicit val ctx: Context) extends ThunkHolder

allNonLocalClassesInSrc += cl

val javaPlatform = ctx.platform.asInstanceOf[JavaPlatform]
if (sym.isStatic && defType == DefinitionType.Module && javaPlatform.hasJavaMainMethod(sym)) {
_mainClasses += name
}

api.ClassLikeDef.of(name, acc, modifiers, anns, tparams, defType)
}

Expand Down