summaryrefslogtreecommitdiff
path: root/src/main/scala/spray/json/ProductFormats.scala
diff options
context:
space:
mode:
authorMathias <mathias@spray.io>2015-05-06 12:22:38 +0200
committerMathias <mathias@spray.io>2015-05-06 12:41:50 +0200
commit5843587ac6472c067aa08347d43f68b78857b053 (patch)
tree04aa8ef9d0d88a035c3b5202b0175dafb25de8cd /src/main/scala/spray/json/ProductFormats.scala
parent36a845cb6b889b7255021edf1c891c8c5069b923 (diff)
downloadspray-json-5843587ac6472c067aa08347d43f68b78857b053.tar.gz
spray-json-5843587ac6472c067aa08347d43f68b78857b053.tar.bz2
spray-json-5843587ac6472c067aa08347d43f68b78857b053.zip
Fix automatic field name discovery for member names with mangled prefix, closes #142
Diffstat (limited to 'src/main/scala/spray/json/ProductFormats.scala')
-rw-r--r--src/main/scala/spray/json/ProductFormats.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/scala/spray/json/ProductFormats.scala b/src/main/scala/spray/json/ProductFormats.scala
index b1aac8e..7d6c63e 100644
--- a/src/main/scala/spray/json/ProductFormats.scala
+++ b/src/main/scala/spray/json/ProductFormats.scala
@@ -72,7 +72,8 @@ trait ProductFormats extends ProductFormatsInstances {
val copyDefaultMethods = clazz.getMethods.filter(_.getName.startsWith("copy$default$")).sortBy(
_.getName.drop("copy$default$".length).takeWhile(_ != '(').toInt)
val fields = clazz.getDeclaredFields.filterNot { f =>
- f.getName.startsWith("$") || Modifier.isTransient(f.getModifiers) || Modifier.isStatic(f.getModifiers)
+ import Modifier._
+ (f.getModifiers & (TRANSIENT | STATIC | 0x1000 /* SYNTHETIC*/)) > 0
}
if (copyDefaultMethods.length != fields.length)
sys.error("Case class " + clazz.getName + " declares additional fields")