Github user mbeckerle commented on a diff in the pull request:
https://github.com/apache/incubator-daffodil/pull/5#discussion_r149838279
--- Diff:
daffodil-core/src/main/scala/edu/illinois/ncsa/daffodil/dsom/ElementBase.scala
---
@@ -252,26 +258,35 @@ abstract class ElementBase(xmlArg: Node, parent:
SchemaComponent, position: Int)
lazy val optMinOccurs: Option[Int] = None
lazy val optMaxOccurs: Option[Int] = None
- def elementRef: Option[ElementRef]
-
final override lazy val dpathCompileInfo = dpathElementCompileInfo
+ /**
+ * This is the compile info for this element. Since this might be an
+ * element ref, we optionally carry the compile info for the referenced
+ * element in that case.
+ */
lazy val dpathElementCompileInfo: DPathElementCompileInfo = {
+ val ee = enclosingElement
val eci = new DPathElementCompileInfo(
- enclosingElement.map { _.dpathElementCompileInfo },
+ ee.map {
+ _.dpathElementCompileInfo
+ },
variableMap,
+ elementChildrenCompileInfo,
namespaces,
slashPath,
name,
isArray,
namedQName,
optPrimType,
schemaFileLocation,
- elementChildrenCompileInfo,
- tunable)
+ tunable,
+ maybeElementRefReferencedElementCompileInfo)
eci
}
+ protected def maybeElementRefReferencedElementCompileInfo:
Maybe[DPathElementCompileInfo] = Maybe.Nope
--- End diff --
check if this is used. It might not be.
---