Skip to content

Commit eaf445a

Browse files
committed
smallest change to make PROBLEM reappear
1 parent 4159ccd commit eaf445a

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

scala/RDF.scala

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,31 @@ trait RDF:
1111
rdf =>
1212

1313
type R = rdf.type
14-
15-
type Node <: Matchable
16-
type URI <: Node
14+
type rNode <: Matchable
15+
type rURI <: rNode
16+
type Node <: rNode
17+
type URI <: Node & rURI
1718

1819
given rops: ROps[R]
1920
end RDF
2021

2122
object RDF:
23+
24+
type rNode[R <: RDF] = R match
25+
case GetRelativeNode[n] => n & Matchable
26+
27+
type rURI[R <: RDF] = R match
28+
case GetRelativeURI[u] => u & rNode[R]
2229

2330
type Node[R <: RDF] = R match
24-
case GetNode[n] => n
31+
case GetNode[n] => n & rNode[R]
2532

2633
type URI[R <: RDF] <: Node[R] = R match
27-
case GetURI[u] => u & Node[R]
28-
34+
case GetURI[u] => u & Node[R] & rURI[R]
35+
36+
private type GetRelativeNode[N] = RDF { type rNode = N }
2937
private type GetNode[N] = RDF { type Node = N }
38+
private type GetRelativeURI[U] = RDF { type rURI = U }
3039
private type GetURI[U] = RDF { type URI = U }
3140

3241
end RDF

scala/RDF_Class.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ object ClassTypes {
2424
object ClassRDF extends generic.RDF:
2525
import class_based.ClassTypes as cz
2626
import generic.*
27-
28-
override opaque type Node <: Matchable = cz.Node
29-
override opaque type URI <: Node = cz.Uri
27+
28+
override opaque type rNode <: Matchable = cz.Node
29+
override opaque type rURI <: rNode = cz.Uri
30+
override opaque type Node <: rNode = cz.Node
31+
override opaque type URI <: Node & rURI = cz.Uri
3032

3133
given rops: generic.ROps[R] with
3234
override def mkUri(str: String): Try[RDF.URI[R]] = Try(

scala/RDF_UsingScalaTrait.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ import generic.*
88
// todo, put back example using traits only to see if Java is the problem
99
object TraitBasedRDF extends RDF:
1010
lazy val factory: rdfscala.ScalaMkNodes = rdfscala.SimpleScalaNodeFactory
11-
override opaque type Node <: Matchable = rdfscala.TstNode
12-
override opaque type URI <: Node = rdfscala.URI
11+
override opaque type rNode <: Matchable = rdfscala.TstNode
12+
override opaque type rURI <: rNode = rdfscala.URI
13+
override opaque type Node <: rNode = rdfscala.TstNode
14+
override opaque type URI <: Node & rURI = rdfscala.URI
1315

1416
given rops: ROps[R] with
1517
override def mkUri(str: String): Try[RDF.URI[R]] = Try(

0 commit comments

Comments
 (0)