From 655a08f12e2104cc459eb22902fab3630c71d0f2 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Thu, 7 Sep 2017 13:29:59 -0700 Subject: [PATCH] config: support default values for Field[T] keys --- src/main/scala/config/Config.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/scala/config/Config.scala b/src/main/scala/config/Config.scala index 457dd184..0f4db18e 100644 --- a/src/main/scala/config/Config.scala +++ b/src/main/scala/config/Config.scala @@ -2,7 +2,11 @@ package freechips.rocketchip.config -abstract class Field[T] +abstract class Field[T] private (val default: Option[T]) +{ + def this() = this(None) + def this(x: T) = this(Some(x)) +} abstract class View { final def apply[T](pname: Field[T]): T = apply(pname, this) @@ -42,7 +46,7 @@ class Config(p: Parameters) extends Parameters { // Internal implementation: private class TerminalView extends View { - def find[T](pname: Field[T], site: View): Option[T] = None + def find[T](pname: Field[T], site: View): Option[T] = pname.default } private class ChainView(head: Parameters, tail: View) extends View {