summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Volz <ryan.volz@gmail.com>2021-10-11 15:02:55 -0400
committermormj <34754695+mormj@users.noreply.github.com>2021-10-12 06:24:01 -0400
commit06dc1a9fca3bd1a2421e1a19fd6374519349d8d9 (patch)
tree15e563fcd5af95ff8b54ddbdcb3a362f6b8b966b
parente50c3f80dd68c29f0f1331692dedefb95ab46ca7 (diff)
grc: Look up type aliases as a set instead of a single value.
After #5127, we inadvertently had duplicate dictionary keys, meaning the last entry is the only one that actually existed and some desired aliases were missing. This changes the ALIAS_OF dictionary to ALIASES_OF where the values are now a set of aliases instead of a single string value. The one use of the ALIAS_OF dictionary was changed to operate on the returned set. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
-rw-r--r--grc/core/Connection.py4
-rw-r--r--grc/core/Constants.py34
2 files changed, 18 insertions, 20 deletions
diff --git a/grc/core/Connection.py b/grc/core/Connection.py
index 718dd69e71..f979efb3e4 100644
--- a/grc/core/Connection.py
+++ b/grc/core/Connection.py
@@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
from .base import Element
-from .Constants import ALIAS_OF
+from .Constants import ALIASES_OF
from .utils.descriptors import lazy_property
@@ -93,7 +93,7 @@ class Connection(Element):
source_dtype = self.source_port.dtype
sink_dtype = self.sink_port.dtype
- if source_dtype != sink_dtype and source_dtype != ALIAS_OF.get(sink_dtype):
+ if source_dtype != sink_dtype and source_dtype not in ALIASES_OF.get(sink_dtype):
self.add_error_message('Source IO type "{}" does not match sink IO type "{}".'.format(source_dtype, sink_dtype))
source_size = self.source_port.item_size
diff --git a/grc/core/Constants.py b/grc/core/Constants.py
index 7d27db104c..953676ffde 100644
--- a/grc/core/Constants.py
+++ b/grc/core/Constants.py
@@ -116,24 +116,22 @@ ALIAS_TYPES = {
'bits': (1, GRC_COLOR_PURPLE_A100),
}
-ALIAS_OF = {
- 'complex': 'fc32',
- 'float': 'f32',
- 'int': 's32',
- 'short': 's16',
- 'short': 'sc16',
- 'byte': 's8',
- 'byte': 'sc8',
- 'bits': 'bit',
-
- 'fc32': 'complex',
- 'f32': 'float',
- 's32': 'int',
- 's16': 'short',
- 'sc16': 'short',
- 's8': 'byte',
- 'sc8': 'byte',
- 'bit': 'bits',
+ALIASES_OF = {
+ 'complex': {'fc32'},
+ 'float': {'f32'},
+ 'int': {'s32'},
+ 'short': {'s16', 'sc16'},
+ 'byte': {'s8', 'sc8'},
+ 'bits': {'bit'},
+
+ 'fc32': {'complex'},
+ 'f32': {'float'},
+ 's32': {'int'},
+ 's16': {'short'},
+ 'sc16': {'short'},
+ 's8': {'byte'},
+ 'sc8': {'byte'},
+ 'bit': {'bits'},
}
TYPE_TO_SIZEOF = {key: sizeof for name, key, sizeof, color in CORE_TYPES}