Skip to content

Commit 2d04f70

Browse files
committed
Add addition operation for snippet compiler arg
1 parent 658ce9b commit 2d04f70

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

scaladoc/src/dotty/tools/scaladoc/renderers/UncycloDocRenderer.scala

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,15 @@ class DocRender(signatureRenderer: SignatureRenderer, snippetChecker: SnippetChe
1313
private val snippetCheckingFuncFromMember: Member => SnippetChecker.SnippetCheckingFunc =
1414
(m: Member) => {
1515
(str: String, lineOffset: SnippetChecker.LineOffset, argOverride: Option[SnippetCompilerArg]) => {
16-
val arg = argOverride.getOrElse(
17-
ctx.snippetCompilerArgs.get(m).getOrElse(SnippetCompilerArg.default)
16+
val pathBasedArg = ctx.snippetCompilerArgs.get(m).fold(
17+
SnippetCompilerArg.default
18+
)(
19+
_ + SnippetCompilerArg.default
20+
)
21+
val arg = argOverride.fold(
22+
pathBasedArg
23+
)(
24+
_ + pathBasedArg
1825
)
1926

2027
snippetChecker.checkSnippet(str, m.docs.map(_.snippetCompilerData), arg, lineOffset).foreach { _ match {

scaladoc/src/dotty/tools/scaladoc/snippets/SnippetCompilerArgs.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ package snippets
33

44
case class SnippetCompilerArg(flags: Set[SCFlags]):
55
def is(flag: SCFlags): Boolean = flags.contains(flag)
6+
def +(other: SnippetCompilerArg): SnippetCompilerArg = {
7+
val allNoncompatbileFlags = flags.flatMap(_.forbiddenFlags)
8+
val compatibleFlags = other.flags.filter(flag => !allNoncompatbileFlags.contains(flag))
9+
copy(flags = flags ++ compatibleFlags)
10+
}
611

712
object SnippetCompilerArg:
813
def default: SnippetCompilerArg = SnippetCompilerArg(

0 commit comments

Comments
 (0)