0.11-SNAPSHOT, and I'm writing up some example code for the book. I have the
following class/object:

class Transaction extends LongKeyedMapper[Transaction] with IdPK {
  def getSingleton = Transaction

  object account extends MappedLongForeignKey(this, Account) {
    override def dbIndexed_? = true
  }

  object txtime extends MappedDateTime(this)

  // The amount has up to 16 digits and 2 decimal places
  object amount extends MappedDecimal(this, MathContext.DECIMAL64, 2)

  // Holds a brief description of the transaction
  object summary extends MappedString(this, 100)

  object notes extends MappedTextarea(this, 1000) {
    override def textareaCols = 60
    override def textareaRows = 8
  }

  def tags = TransactionTag.findAll(By(TransactionTag.transaction, this.id))
}

object Transaction extends Transaction with LongKeyedMetaMapper[Transaction]
{
  override def fieldOrder = txtime :: amount :: summary :: Nil
}

The compile error I get is:

[WARNING]
/home/software/pocketchangeapp/PocketChange/src/main/scala/com/pocketchangeapp/model/Transaction.scala:35:
error: inferred type arguments [net.liftweb.mapper.MappedField[_ >: _1 with
java.util.Date <: java.io.Serializable,
com.pocketchangeapp.model.Transaction]] do not conform to method ::'s type
parameter bounds [B >: net.liftweb.mapper.MappedField[_ >: String with
BigDecimal <: java.io.Serializable,
com.pocketchangeapp.model.Transaction]{def jdbcFriendly(String):
java.io.Serializable}]
[WARNING]   override def fieldOrder = txtime :: amount :: summary :: Nil
[WARNING]                                    ^
[WARNING] one error found

If I remove the "summary" element from the fieldOrder list then it compiles
fine. Likewise, if I remove txtime and put summary and notes into the list
it compiles fine. I'm trying to get my head around all of the nested type
bounds in the error message but I'm not seeing anything obvious other than
the weird "String with BigDecimal" bound. I tried using an explicit type for
fieldOrder but that doesn't work either.

I finally tried changing fieldOrder to:

override def fieldOrder = List(txtime, amount, summary, notes)

That compiles fine. Have I found a type inferencing bug, or have I just done
something incredibly stupid somewhere? Feel free to critique the class, too.

Thanks,

Derek

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to