Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision e67991fd01d5341ea7ee45736431dbe64851911e)
+++ src/SynTree/Type.cc	(revision f673c13c3abea6ddbff21862943f7b63b949ff46)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jan 31 21:54:16 2019
-// Update Count     : 43
+// Last Modified By : Andrew Beach
+// Last Modified On : Fri Jul 12 15:48:00 2019
+// Update Count     : 44
 //
 #include "Type.h"
@@ -141,4 +141,11 @@
 }
 
+const Type * Type::stripReferences() const {
+	const Type * type;
+	const ReferenceType * ref;
+	for ( type = this; (ref = dynamic_cast<const ReferenceType *>( type )); type = ref->base );
+	return type;
+}
+
 int Type::referenceDepth() const { return 0; }
 
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision e67991fd01d5341ea7ee45736431dbe64851911e)
+++ src/SynTree/Type.h	(revision f673c13c3abea6ddbff21862943f7b63b949ff46)
@@ -172,4 +172,5 @@
 	/// return type without outer references
 	Type * stripReferences();
+	const Type * stripReferences() const;
 
 	/// return the number of references occuring consecutively on the outermost layer of this type (i.e. do not count references nested within other types)
@@ -256,5 +257,5 @@
 	BasicType( const Type::Qualifiers & tq, Kind bt, const std::list< Attribute * > & attributes = std::list< Attribute * >() );
 
-	Kind get_kind() { return kind; }
+	Kind get_kind() const { return kind; }
 	void set_kind( Kind newValue ) { kind = newValue; }
 
Index: src/SynTree/module.mk
===================================================================
--- src/SynTree/module.mk	(revision e67991fd01d5341ea7ee45736431dbe64851911e)
+++ src/SynTree/module.mk	(revision f673c13c3abea6ddbff21862943f7b63b949ff46)
