Skip to content

Commit 28310f6

Browse files
committed
Part 10 - fix GenIdea
- In Scala 3 an implicitly inserted else branch will not be implicitly converted to the type of the then branch, so use explicit else branch with NodeSeq.Empty
1 parent f53d714 commit 28310f6

File tree

7 files changed

+42
-20
lines changed

7 files changed

+42
-20
lines changed

idea/src/mill/idea/GenIdeaImpl.scala

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -772,8 +772,14 @@ case class GenIdeaImpl(
772772
<library name={name} type="Scala">
773773
<properties>
774774
{
775-
if (languageLevel.isDefined) <language-level>{languageLevel.get}</language-level>
776-
}
775+
if (languageLevel.isDefined)
776+
<language-level>{languageLevel.get}</language-level>
777+
else {
778+
// Scala 3: I assume there is some missing implicit conversion from `()` to NodeSeq,
779+
// so use an explicit seq.
780+
NodeSeq.Empty
781+
}
782+
}
777783
<compiler-classpath>
778784
{
779785
scalaCompilerClassPath.iterator.toSeq.sortBy(_.wrapped).map(p =>
@@ -782,10 +788,14 @@ case class GenIdeaImpl(
782788
}
783789
</compiler-classpath>
784790
{
785-
if (compilerBridgeJar.isDefined) <compiler-bridge-binary-jar>{
786-
relativeFileUrl(compilerBridgeJar.get)
787-
}</compiler-bridge-binary-jar>
788-
}
791+
if (compilerBridgeJar.isDefined)
792+
<compiler-bridge-binary-jar>{relativeFileUrl(compilerBridgeJar.get)}</compiler-bridge-binary-jar>
793+
else {
794+
// Scala 3: I assume there is some missing implicit conversion from `()` to NodeSeq,
795+
// so use an explicit seq.
796+
NodeSeq.Empty
797+
}
798+
}
789799
</properties>
790800
</library>
791801
</component>
@@ -802,12 +812,16 @@ case class GenIdeaImpl(
802812
<root url={relativeJarUrl(path)}/>
803813
</CLASSES>
804814
{
805-
if (sources.isDefined) {
806-
<SOURCES>
807-
<root url={relativeJarUrl(sources.get)}/>
808-
</SOURCES>
809-
}
810-
}
815+
if (sources.isDefined) {
816+
<SOURCES>
817+
<root url={relativeJarUrl(sources.get)}/>
818+
</SOURCES>
819+
} else {
820+
// Scala 3: I assume there is some missing implicit conversion from `()` to NodeSeq,
821+
// so use an explicit seq.
822+
NodeSeq.Empty
823+
}
824+
}
811825
</library>
812826
</component>
813827
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<component name="libraryTable">
2-
<library name="SBT: junit:junit_2.13:4.13.2:jar">
2+
<library name="SBT: junit:junit_3.5:4.13.2:jar">
33
<CLASSES>
44
<root url="jar://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2.jar!/"/>
55
</CLASSES>
66
<SOURCES>
77
<root url="jar://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2-sources.jar!/"/>
88
</SOURCES>
99
</library>
10-
</component>
10+
</component>
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<component name="libraryTable">
2-
<library name="SBT: org.scalameta:munit_2.13:0.7.29:jar">
2+
<library name="SBT: org.scalameta:munit_3_3.5:0.7.29:jar">
33
<CLASSES>
4-
<root url="jar://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scalameta/munit_2.13/0.7.29/munit_2.13-0.7.29.jar!/"/>
4+
<root url="jar://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scalameta/munit_3/0.7.29/munit_3-0.7.29.jar!/"/>
55
</CLASSES>
66
<SOURCES>
7-
<root url="jar://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scalameta/munit_2.13/0.7.29/munit_2.13-0.7.29-sources.jar!/"/>
7+
<root url="jar://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scalameta/munit_3/0.7.29/munit_3-0.7.29-sources.jar!/"/>
88
</SOURCES>
99
</library>
10-
</component>
10+
</component>

integration/ide/gen-idea/resources/hello-idea/build.mill

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ object HelloIdea extends HelloIdeaModule {
2626
object scala3 extends HelloIdeaModule {
2727
override def scalaVersion = "3.3.1"
2828
}
29+
object scala2_13 extends HelloIdeaModule {
30+
override def scalaVersion = "2.13.14"
31+
}
2932
}
3033

3134
object HiddenIdea extends HelloIdeaModule {

integration/ide/gen-idea/resources/hello-idea/idea/libraries/scala_SDK_2_13_14.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
<properties>
44
<language-level>Scala_2_13</language-level>
55
<compiler-classpath>
6+
<root url="file://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar"/>
7+
<root url="file://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar"/>
8+
<root url="file://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/jline/jline/3.25.1/jline-3.25.1.jar"/>
69
<root url="file://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.14/scala-compiler-2.13.14.jar"/>
710
<root url="file://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.14/scala-library-2.13.14.jar"/>
811
<root url="file://$USER_HOME$/COURSIER_CACHE/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.14/scala-reflect-2.13.14.jar"/>

integration/ide/gen-idea/resources/hello-idea/idea/mill_modules/mill-build.iml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</content>
99
<orderEntry type="inheritedJdk"/>
1010
<orderEntry type="sourceFolder" forTests="false"/>
11-
<orderEntry type="library" name="scala-SDK-2.13.<!-- IGNORE -->" level="project"/>
11+
<orderEntry type="library" name="scala-SDK-3.5.<!-- IGNORE -->" level="project"/>
1212
<!-- IGNORE -->
1313
</component>
14-
</module>
14+
</module>

integration/ide/gen-idea/resources/hello-idea/idea/modules.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<component name="ProjectModuleManager">
33
<modules>
44
<module fileurl="file://$PROJECT_DIR$/.idea/mill_modules/helloidea.iml" filepath="$PROJECT_DIR$/.idea/mill_modules/helloidea.iml"/>
5+
<module fileurl="file://$PROJECT_DIR$/.idea/mill_modules/helloidea.scala2_13.iml" filepath="$PROJECT_DIR$/.idea/mill_modules/helloidea.scala2_13.iml"/>
6+
<module fileurl="file://$PROJECT_DIR$/.idea/mill_modules/helloidea.scala2_13.test.iml" filepath="$PROJECT_DIR$/.idea/mill_modules/helloidea.scala2_13.test.iml"/>
57
<module fileurl="file://$PROJECT_DIR$/.idea/mill_modules/helloidea.scala3.iml" filepath="$PROJECT_DIR$/.idea/mill_modules/helloidea.scala3.iml"/>
68
<module fileurl="file://$PROJECT_DIR$/.idea/mill_modules/helloidea.scala3.test.iml" filepath="$PROJECT_DIR$/.idea/mill_modules/helloidea.scala3.test.iml"/>
79
<module fileurl="file://$PROJECT_DIR$/.idea/mill_modules/helloidea.test.iml" filepath="$PROJECT_DIR$/.idea/mill_modules/helloidea.test.iml"/>

0 commit comments

Comments
 (0)