Browse Source

Disallow base/derived dimension conflicts, closes #153

David Peter 2 years ago
parent
commit
fedd0913fe
2 changed files with 4 additions and 2 deletions
  1. 2 0
      examples/typecheck_error/dimension_name_conflict.nbt
  2. 2 2
      numbat/src/registry.rs

+ 2 - 0
examples/typecheck_error/dimension_name_conflict.nbt

@@ -0,0 +1,2 @@
+dimension A
+dimension A = A^2

+ 2 - 2
numbat/src/registry.rs

@@ -99,7 +99,7 @@ impl<T> Default for Registry<T> {
 
 impl<Metadata> Registry<Metadata> {
     pub fn add_base_entry(&mut self, name: &str, metadata: Metadata) -> Result<()> {
-        if self.is_base_entry(name) {
+        if self.contains(name) {
             return Err(RegistryError::EntryExists(name.to_owned()));
         }
         self.base_entries.push((name.to_owned(), metadata));
@@ -128,7 +128,7 @@ impl<Metadata> Registry<Metadata> {
         name: &str,
         base_representation: BaseRepresentation,
     ) -> Result<()> {
-        if self.derived_entries.contains_key(name) {
+        if self.contains(name) {
             return Err(RegistryError::EntryExists(name.to_owned()));
         }