Skip to content

Commit fb4daf8

Browse files
authored
Merge branch 'master' into ennru_MethodDoesNotTakeParameters
2 parents 9c0d0dd + 1c1b78f commit fb4daf8

File tree

10 files changed

+182
-34
lines changed

10 files changed

+182
-34
lines changed

.drone.yml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,26 @@ pipeline:
1212
pull: true
1313
commands:
1414
- ln -s /var/cache/drone/ivy2 "$HOME/.ivy2"
15-
- sbt -J-Xmx4096m -J-XX:ReservedCodeCacheSize=512m -J-XX:MaxMetaspaceSize=1024m -Ddotty.drone.mem=4096m "${CI_TEST}"
15+
- ./project/scripts/sbt "${CI_TEST}"
1616
when:
1717
branch:
1818
exclude: gh-pages
1919

20+
publish_nightly:
21+
image: lampepfl/dotty:24-04-2017
22+
pull: true
23+
commands:
24+
- ./project/scripts/sbt ";clean ;publishLocal" "${CI_PUBLISH}"
25+
- ./project/scripts/sbt "sbt-scripted-tests/scripted source-dependencies/*1of3" "${CI_PUBLISH}"
26+
- ./project/scripts/sbt "sbt-scripted-tests/scripted source-dependencies/*2of3" "${CI_PUBLISH}"
27+
- ./project/scripts/sbt "sbt-scripted-tests/scripted source-dependencies/*3of3" "${CI_PUBLISH}"
28+
- ./project/scripts/sbtPublish '${CI_PUBLISH}' '$SONATYPE_USER' '$SONATYPE_PW' '$PGP_PW'
29+
volumes:
30+
- /home/drone/keys:/keys
31+
when:
32+
event: deployment
33+
environment: nightly
34+
2035
documentation:
2136
image: lampepfl/dotty:24-04-2017
2237
pull: true

.drone.yml.sig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
eyJhbGciOiJIUzI1NiJ9.IyBBZnRlciB1cGRhdGluZyB0aGlzIGZpbGUsIHlvdSBuZWVkIHRvIHJlLXNpZ24gaXQ6CiMKIyAtIEluc3RhbGwgW2Ryb25lLWNsaV0oaHR0cDovL3JlYWRtZS5kcm9uZS5pby91c2FnZS9nZXR0aW5nLXN0YXJ0ZWQtY2xpLykKIyAtIENvcHkgeW91ciB0b2tlbiBmcm9tICBodHRwOi8vZG90dHktY2kuZXBmbC5jaC9hY2NvdW50IChDbGljayBTSE9XIFRPS0VOKQojIC0gKGV4cG9ydCBEUk9ORV9UT0tFTj15b3VyLXRva2VuOyBleHBvcnQgRFJPTkVfU0VSVkVSPWh0dHA6Ly9kb3R0eS1jaS5lcGZsLmNoOyBkcm9uZSBzaWduIGxhbXBlcGZsL2RvdHR5KQojCiMgUGxlYXNlIG5vdGUgdGhhdCB0aGUgc2lnbmluZyBjYW4gb25seSBiZSBkb25lIGJ5IGNvbGxhYm9yYXRvcnMuCgpwaXBlbGluZToKICB0ZXN0OgogICAgaW1hZ2U6IGxhbXBlcGZsL2RvdHR5OjI0LTA0LTIwMTcKICAgIHB1bGw6IHRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGxuIC1zIC92YXIvY2FjaGUvZHJvbmUvaXZ5MiAiJEhPTUUvLml2eTIiCiAgICAgIC0gc2J0IC1KLVhteDQwOTZtIC1KLVhYOlJlc2VydmVkQ29kZUNhY2hlU2l6ZT01MTJtIC1KLVhYOk1heE1ldGFzcGFjZVNpemU9MTAyNG0gLURkb3R0eS5kcm9uZS5tZW09NDA5Nm0gIiR7Q0lfVEVTVH0iCiAgICB3aGVuOgogICAgICBicmFuY2g6CiAgICAgICAgZXhjbHVkZTogZ2gtcGFnZXMKCiAgZG9jdW1lbnRhdGlvbjoKICAgIGltYWdlOiBsYW1wZXBmbC9kb3R0eToyNC0wNC0yMDE3CiAgICBwdWxsOiB0cnVlCiAgICBjb21tYW5kczoKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9nZW5Eb2NzICIke0NJX1BVQkxJU0h9IiAkQk9UX1BBU1MKICAgIHdoZW46CiAgICAgIGJyYW5jaDogbWFzdGVyCgogIHNsYWNrOgogICAgaW1hZ2U6IHBsdWdpbnMvc2xhY2sKICAgIGNoYW5uZWw6IGRvdHR5CiAgICB3aGVuOgogICAgICBicmFuY2g6IG1hc3RlcgogICAgICBzdGF0dXM6IGNoYW5nZWQKCm1hdHJpeDoKICBpbmNsdWRlOgogICAgLSBDSV9URVNUOiBkb3R0eS1iaW4tdGVzdHMvdGVzdAogICAgICBDSV9QVUJMSVNIOiB0cnVlCiAgICAtIENJX1RFU1Q6IGxlZ2FjeVRlc3RzCiAgICAgIENJX1BVQkxJU0g6IGZhbHNlCiAgICAtIENJX1RFU1Q6IDt0ZXN0O3NidC1kb3R0eS9zY3JpcHRlZAogICAgICBDSV9QVUJMSVNIOiBmYWxzZQogICAgLSBDSV9URVNUOiBkb3R0eS1ib290c3RyYXBwZWQvdGVzdAogICAgICBDSV9QVUJMSVNIOiBmYWxzZQo.Ib2LCIvmphRVXRKdsgpf8MiRlNwZmtE7d0dRv7u_aMo
1+
eyJhbGciOiJIUzI1NiJ9.IyBBZnRlciB1cGRhdGluZyB0aGlzIGZpbGUsIHlvdSBuZWVkIHRvIHJlLXNpZ24gaXQ6CiMKIyAtIEluc3RhbGwgW2Ryb25lLWNsaV0oaHR0cDovL3JlYWRtZS5kcm9uZS5pby91c2FnZS9nZXR0aW5nLXN0YXJ0ZWQtY2xpLykKIyAtIENvcHkgeW91ciB0b2tlbiBmcm9tICBodHRwOi8vZG90dHktY2kuZXBmbC5jaC9hY2NvdW50IChDbGljayBTSE9XIFRPS0VOKQojIC0gKGV4cG9ydCBEUk9ORV9UT0tFTj15b3VyLXRva2VuOyBleHBvcnQgRFJPTkVfU0VSVkVSPWh0dHA6Ly9kb3R0eS1jaS5lcGZsLmNoOyBkcm9uZSBzaWduIGxhbXBlcGZsL2RvdHR5KQojCiMgUGxlYXNlIG5vdGUgdGhhdCB0aGUgc2lnbmluZyBjYW4gb25seSBiZSBkb25lIGJ5IGNvbGxhYm9yYXRvcnMuCgpwaXBlbGluZToKICB0ZXN0OgogICAgaW1hZ2U6IGxhbXBlcGZsL2RvdHR5OjI0LTA0LTIwMTcKICAgIHB1bGw6IHRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGxuIC1zIC92YXIvY2FjaGUvZHJvbmUvaXZ5MiAiJEhPTUUvLml2eTIiCiAgICAgIC0gLi9wcm9qZWN0L3NjcmlwdHMvc2J0ICIke0NJX1RFU1R9IgogICAgd2hlbjoKICAgICAgYnJhbmNoOgogICAgICAgIGV4Y2x1ZGU6IGdoLXBhZ2VzCgogIHB1Ymxpc2hfbmlnaHRseToKICAgIGltYWdlOiBsYW1wZXBmbC9kb3R0eToyNC0wNC0yMDE3CiAgICBwdWxsOiB0cnVlCiAgICBjb21tYW5kczoKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9zYnQgIjtjbGVhbiA7cHVibGlzaExvY2FsIiAiJHtDSV9QVUJMSVNIfSIKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9zYnQgInNidC1zY3JpcHRlZC10ZXN0cy9zY3JpcHRlZCBzb3VyY2UtZGVwZW5kZW5jaWVzLyoxb2YzIiAiJHtDSV9QVUJMSVNIfSIKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9zYnQgInNidC1zY3JpcHRlZC10ZXN0cy9zY3JpcHRlZCBzb3VyY2UtZGVwZW5kZW5jaWVzLyoyb2YzIiAiJHtDSV9QVUJMSVNIfSIKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9zYnQgInNidC1zY3JpcHRlZC10ZXN0cy9zY3JpcHRlZCBzb3VyY2UtZGVwZW5kZW5jaWVzLyozb2YzIiAiJHtDSV9QVUJMSVNIfSIKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9zYnRQdWJsaXNoICcke0NJX1BVQkxJU0h9JyAnJFNPTkFUWVBFX1VTRVInICckU09OQVRZUEVfUFcnICckUEdQX1BXJwogICAgdm9sdW1lczoKICAgICAgLSAvaG9tZS9kcm9uZS9rZXlzOi9rZXlzCiAgICB3aGVuOgogICAgICBldmVudDogZGVwbG95bWVudAogICAgICBlbnZpcm9ubWVudDogbmlnaHRseQoKICBkb2N1bWVudGF0aW9uOgogICAgaW1hZ2U6IGxhbXBlcGZsL2RvdHR5OjI0LTA0LTIwMTcKICAgIHB1bGw6IHRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIC4vcHJvamVjdC9zY3JpcHRzL2dlbkRvY3MgIiR7Q0lfUFVCTElTSH0iICRCT1RfUEFTUwogICAgd2hlbjoKICAgICAgYnJhbmNoOiBtYXN0ZXIKCiAgc2xhY2s6CiAgICBpbWFnZTogcGx1Z2lucy9zbGFjawogICAgY2hhbm5lbDogZG90dHkKICAgIHdoZW46CiAgICAgIGJyYW5jaDogbWFzdGVyCiAgICAgIHN0YXR1czogY2hhbmdlZAoKbWF0cml4OgogIGluY2x1ZGU6CiAgICAtIENJX1RFU1Q6IGRvdHR5LWJpbi10ZXN0cy90ZXN0CiAgICAgIENJX1BVQkxJU0g6IHRydWUKICAgIC0gQ0lfVEVTVDogbGVnYWN5VGVzdHMKICAgICAgQ0lfUFVCTElTSDogZmFsc2UKICAgIC0gQ0lfVEVTVDogO3Rlc3Q7c2J0LWRvdHR5L3NjcmlwdGVkCiAgICAgIENJX1BVQkxJU0g6IGZhbHNlCiAgICAtIENJX1RFU1Q6IGRvdHR5LWJvb3RzdHJhcHBlZC90ZXN0CiAgICAgIENJX1BVQkxJU0g6IGZhbHNlCg.HnCjsaRZZqENfAxCbozo2UWxzPIFXuhMrO7-YDzplZg

compiler/src/dotty/tools/dotc/reporting/diagnostic/ErrorMessageID.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ public enum ErrorMessageID {
5858
SuperQualMustBeParentID,
5959
AmbiguousImportID,
6060
MethodDoesNotTakeParametersId,
61+
AmbiguousOverloadID,
62+
ReassignmentToValID,
6163
;
6264

6365
public int errorNumber() {

compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import dotc.parsing.Tokens
1818
import printing.Highlighting._
1919
import printing.Formatting
2020
import ErrorMessageID._
21+
import Denotations.SingleDenotation
2122
import dotty.tools.dotc.core.SymDenotations.SymDenotation
2223

2324
object messages {
@@ -1193,7 +1194,6 @@ object messages {
11931194
extends Message(SuperQualMustBeParentID) {
11941195

11951196
val msg = hl"""|$qual does not name a parent of $cls"""
1196-
11971197
val kind = "Reference"
11981198

11991199
private val parents: Seq[String] = (cls.info.parents map (_.name.show)).sorted
@@ -1208,15 +1208,13 @@ object messages {
12081208
}
12091209

12101210
case class VarArgsParamMustComeLast()(implicit ctx: Context)
1211-
extends Message(IncorrectRepeatedParameterSyntaxID) {
1212-
override def msg: String = "varargs parameter must come last"
1213-
1214-
override def kind: String = "Syntax"
1215-
1216-
override def explanation: String =
1211+
extends Message(IncorrectRepeatedParameterSyntaxID) {
1212+
val msg = "varargs parameter must come last"
1213+
val kind = "Syntax"
1214+
val explanation =
12171215
hl"""|The varargs field must be the last field in the method signature.
12181216
|Attempting to define a field in a method signature after a varargs field is an error.
1219-
|""".stripMargin
1217+
|"""
12201218
}
12211219

12221220
case class AmbiguousImport(name: Names.Name, newPrec: Int, prevPrec: Int, prevCtx: Context)(implicit ctx: Context)
@@ -1276,4 +1274,37 @@ object messages {
12761274
|$noParameters""".stripMargin
12771275

12781276
}
1277+
1278+
case class AmbiguousOverload(tree: tpd.Tree, alts: List[SingleDenotation], pt: Type)(
1279+
err: typer.ErrorReporting.Errors)(
1280+
implicit ctx: Context)
1281+
extends Message(AmbiguousOverloadID) {
1282+
1283+
private val all = if (alts.length == 2) "both" else "all"
1284+
val msg =
1285+
s"""|Ambiguous overload. The ${err.overloadedAltsStr(alts)}
1286+
|$all match ${err.expectedTypeStr(pt)}""".stripMargin
1287+
val kind = "Reference"
1288+
val explanation =
1289+
hl"""|There are ${alts.length} methods that could be referenced as the compiler knows too little
1290+
|about the expected type.
1291+
|You may specify the expected type e.g. by
1292+
|- assigning it to a value with a specified type, or
1293+
|- adding a type ascription as in `${"instance.myMethod: String => Int"}`
1294+
|"""
1295+
}
1296+
1297+
case class ReassignmentToVal(name: Names.Name)(implicit ctx: Context)
1298+
extends Message(ReassignmentToValID) {
1299+
val kind = "Reference"
1300+
val msg = hl"""reassignment to val `$name`"""
1301+
val explanation =
1302+
hl"""|You can not assign a new value to `$name` as values can't be changed.
1303+
|Keep in mind that every statement has a value, so you may e.g. use
1304+
| ${"val"} $name ${"= if (condition) 2 else 5"}
1305+
|In case you need a reassignable name, you can declare it as
1306+
|variable
1307+
| ${"var"} $name ${"="} ...
1308+
|""".stripMargin
1309+
}
12791310
}

compiler/src/dotty/tools/dotc/typer/Dynamic.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import core.Symbols._
1515
import core.Definitions
1616
import Inferencing._
1717
import ErrorReporting._
18+
import dotty.tools.dotc.reporting.diagnostic.messages.ReassignmentToVal
1819

1920
object Dynamic {
2021
def isDynamicMethod(name: Name): Boolean =
@@ -99,7 +100,7 @@ trait Dynamic { self: Typer with Applications =>
99100
case TypeApply(Select(qual, name), targs) if !isDynamicMethod(name) =>
100101
typedDynamicAssign(qual, name, targs)
101102
case _ =>
102-
errorTree(tree, "reassignment to val")
103+
errorTree(tree, ReassignmentToVal(tree.lhs.symbol.name))
103104
}
104105
}
105106

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
558558

559559
def reassignmentToVal =
560560
errorTree(cpy.Assign(tree)(lhsCore, typed(tree.rhs, lhs1.tpe.widen)),
561-
"reassignment to val")
561+
ReassignmentToVal(lhsCore.symbol.name))
562562

563563
def canAssign(sym: Symbol) =
564564
sym.is(Mutable, butNot = Accessor) ||
@@ -1791,15 +1791,14 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
17911791
typr.println(i"adapt overloaded $ref with alternatives ${altDenots map (_.info)}%, %")
17921792
val alts = altDenots map (alt =>
17931793
TermRef.withSigAndDenot(ref.prefix, ref.name, alt.info.signature, alt))
1794-
def expectedStr = err.expectedTypeStr(pt)
17951794
resolveOverloaded(alts, pt) match {
17961795
case alt :: Nil =>
17971796
adapt(tree.withType(alt), pt, original)
17981797
case Nil =>
17991798
def noMatches =
18001799
errorTree(tree,
18011800
em"""none of the ${err.overloadedAltsStr(altDenots)}
1802-
|match $expectedStr""")
1801+
|match ${err.expectedTypeStr(pt)}""")
18031802
def hasEmptyParams(denot: SingleDenotation) = denot.info.paramInfoss == ListOfNil
18041803
pt match {
18051804
case pt: FunProto =>
@@ -1812,10 +1811,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
18121811
}
18131812
case alts =>
18141813
val remainingDenots = alts map (_.denot.asInstanceOf[SingleDenotation])
1815-
def all = if (remainingDenots.length == 2) "both" else "all"
1816-
errorTree(tree,
1817-
em"""Ambiguous overload. The ${err.overloadedAltsStr(remainingDenots)}
1818-
|$all match $expectedStr""")
1814+
errorTree(tree, AmbiguousOverload(tree, remainingDenots, pt)(err))
18191815
}
18201816
}
18211817

compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package reporting
44

55
import core.Contexts.Context
66
import diagnostic.messages._
7+
import dotty.tools.dotc.core.Types.WildcardType
78
import dotty.tools.dotc.parsing.Tokens
89
import org.junit.Assert._
910
import org.junit.{Ignore, Test}
@@ -368,16 +369,16 @@ class ErrorMessagesTests extends ErrorMessagesTest {
368369
|}
369370
""".stripMargin
370371
}
371-
.expect { (ictx, messages) =>
372-
implicit val ctx: Context = ictx
373-
val defn = ictx.definitions
372+
.expect { (ictx, messages) =>
373+
implicit val ctx: Context = ictx
374+
val defn = ictx.definitions
374375

375-
assertMessageCount(1, messages)
376-
val MethodDoesNotTakeParameters(tree, methodPart) :: Nil = messages
376+
assertMessageCount(1, messages)
377+
val MethodDoesNotTakeParameters(tree, methodPart) :: Nil = messages
377378

378-
assertEquals("Scope.foo", tree.show)
379-
assertEquals("=> Unit(Scope.foo)", methodPart.show)
380-
}
379+
assertEquals("Scope.foo", tree.show)
380+
assertEquals("=> Unit(Scope.foo)", methodPart.show)
381+
}
381382

382383
@Test def methodDoesNotTakeMorePrameters =
383384
checkMessagesAfter("frontend") {
@@ -388,15 +389,55 @@ class ErrorMessagesTests extends ErrorMessagesTest {
388389
|}
389390
""".stripMargin
390391
}
391-
.expect { (ictx, messages) =>
392-
implicit val ctx: Context = ictx
393-
val defn = ictx.definitions
392+
.expect { (ictx, messages) =>
393+
implicit val ctx: Context = ictx
394+
val defn = ictx.definitions
394395

395-
assertMessageCount(1, messages)
396-
val MethodDoesNotTakeParameters(tree, methodPart) :: Nil = messages
396+
assertMessageCount(1, messages)
397+
val MethodDoesNotTakeParameters(tree, methodPart) :: Nil = messages
397398

398-
assertEquals("Scope.foo(1)", tree.show)
399-
assertEquals("((a: Int)Unit)(Scope.foo)", methodPart.show)
400-
}
399+
assertEquals("Scope.foo(1)", tree.show)
400+
assertEquals("((a: Int)Unit)(Scope.foo)", methodPart.show)
401+
}
402+
403+
@Test def ambiugousOverloadWithWildcard =
404+
checkMessagesAfter("frontend") {
405+
"""object Context {
406+
| trait A {
407+
| def foo(s: String): String
408+
| def foo: String = foo("foo")
409+
| }
410+
| object B extends A {
411+
| def foo(s: String): String = s
412+
| }
413+
| B.foo
414+
|}
415+
""".stripMargin
416+
}
417+
.expect { (ictx, messages) =>
418+
implicit val ctx: Context = ictx
419+
val defn = ictx.definitions
420+
421+
assertMessageCount(1, messages)
422+
val AmbiguousOverload(tree, List(alt1, alt2), pt: WildcardType) :: Nil = messages
423+
assertEquals("method foo", alt1.show)
424+
assertEquals("(s: String)String", alt1.info.show)
425+
assertEquals("method foo", alt2.show)
426+
}
401427

428+
@Test def reassignmentToVal =
429+
checkMessagesAfter("frontend") {
430+
"""
431+
|class Context {
432+
| val value = 3
433+
| value = 4
434+
|}
435+
""".stripMargin
436+
}
437+
.expect { (ictx, messages) =>
438+
implicit val ctx: Context = ictx
439+
assertMessageCount(1, messages)
440+
val ReassignmentToVal(name) :: Nil = messages
441+
assertEquals("value", name.show)
442+
}
402443
}

project/plugins.sbt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,7 @@ addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")
88
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.14")
99

1010
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.4")
11+
12+
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "1.1")
13+
14+
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")

project/scripts/sbt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env bash
2+
3+
CI_TEST=$1
4+
5+
if [ -n "$2" ]; then
6+
if [ $2 = true ]; then
7+
SHOULD_RUN=true
8+
else
9+
SHOULD_RUN=false
10+
fi
11+
else
12+
SHOULD_RUN=true
13+
fi
14+
15+
if [ $SHOULD_RUN = true ]; then
16+
sbt -J-Xmx4096m \
17+
-J-XX:ReservedCodeCacheSize=512m \
18+
-J-XX:MaxMetaspaceSize=1024m \
19+
-Ddotty.drone.mem=4096m "$CI_TEST"
20+
else
21+
echo "Not running, \$2=$2, SHOULD_RUN=$SHOULD_RUN"
22+
fi

project/scripts/sbtPublish

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env bash
2+
3+
# If the script should publish to maven:
4+
SHOULD_RUN=$1
5+
6+
# Sonatype credentials:
7+
SONATYPE_USER=$2
8+
SONATYPE_PW=$3
9+
10+
# PGP Credentials:
11+
PGP_PW=$4
12+
13+
if [ $SHOULD_RUN = false ]; then
14+
exit 0
15+
fi
16+
17+
if [ -z "$SONATYPE_USER" -o -z "$SONATYPE_PW" -o -z "$PGP_PW" ]; then
18+
echo "invalid args: this script takes 4 args, usage:"
19+
echo ""
20+
echo " ./project/scripts/sbt SHOULD_RUN SONATYPE_USER SONATYPE_PW PGP_PW"
21+
exit 1
22+
fi
23+
24+
CMD=' ;set credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", "'"$SONATYPE_USER"'", "'"$SONATYPE_PW"'")'
25+
CMD="$CMD ;set pgpPassphrase := Some(\"$PGP_PW\".toCharArray)"
26+
CMD="$CMD ;set pgpSecretRing := file(\"/keys/secring.asc\")"
27+
CMD="$CMD ;set pgpPublicRing := file(\"/keys/pubring.asc\")"
28+
CMD="$CMD ;dotty-bootstrapped/publishSigned ;sonatypeRelease"
29+
30+
echo "Will run sbt with command: \"$CMD\""
31+
32+
sbt -J-Xmx4096m \
33+
-J-XX:ReservedCodeCacheSize=512m \
34+
-J-XX:MaxMetaspaceSize=1024m \
35+
-Ddotty.drone.mem=4096m \
36+
"$CMD"

0 commit comments

Comments
 (0)