Github user mbeckerle commented on a diff in the pull request:

    https://github.com/apache/incubator-daffodil/pull/5#discussion_r149836777
  
    --- Diff: 
daffodil-core/src/main/scala/edu/illinois/ncsa/daffodil/dsom/AnnotatedSchemaComponent.scala
 ---
    @@ -41,23 +41,122 @@ import edu.illinois.ncsa.daffodil.equality._
     import 
edu.illinois.ncsa.daffodil.schema.annotation.props.PropertyLookupResult
     import edu.illinois.ncsa.daffodil.schema.annotation.props.NotFound
     import edu.illinois.ncsa.daffodil.schema.annotation.props.Found
    +import edu.illinois.ncsa.daffodil.schema.annotation.props.FindPropertyMixin
    +
    +/**
    + * Only objects from which we generate processors (parsers/unparsers)
    + * can lookup property values.
    + *
    + * This avoids the possibility of a property being resolved incorrectly by
    + * not looking at the complete chain of schema components contributing to 
the
    + * property resolution.
    + *
    + * The only objects that should resolve properties are
    + * ElementRef, Root, LocalElementDecl, Sequence, Choice, SequenceRef, 
ChoiceRef
    + *
    + * These are all the "real" terms. Everything else is just contributing
    + * properties to the mix, but they are not points where properties are
    + * used to generate processors.
    + */
    +trait ResolvesProperties
    +  extends FindPropertyMixin { self: AnnotatedSchemaComponent =>
    +
    +  def term: Term
    +
    +  private def findNonDefaultProperty(pname: String): PropertyLookupResult 
= {
    --- End diff --
    
    This is not new code, but was moved into this trait.


---

Reply via email to