diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py index bd72152ad0abc4aacd63816c46631ef608565742..9abbe81956da021a79f6cc1e3f61f9d958ed1c8e 100644 --- a/loopy/kernel/array.py +++ b/loopy/kernel/array.py @@ -298,21 +298,22 @@ def parse_array_dim_tags(dim_tags, use_increasing_target_axes=False): has_explicit_nesting_level, parsed_dim_tag = _parse_array_dim_tag( dim_tag, default_target_axis, nesting_levels) - # {{{ check for C/F mixed with explicit layout nesting level specs - - if parsed_dim_tag.target_axis in target_axis_to_has_explicit_nesting_level: - if (has_explicit_nesting_level - != target_axis_to_has_explicit_nesting_level[ - parsed_dim_tag.target_axis]): - raise LoopyError("may not mix C/F dim_tag specifications with " - "explicit specification of layout nesting levels") - else: - target_axis_to_has_explicit_nesting_level[parsed_dim_tag.target_axis] = \ - has_explicit_nesting_level + if isinstance(parsed_dim_tag, _StrideArrayDimTagBase): + # {{{ check for C/F mixed with explicit layout nesting level specs + + if (parsed_dim_tag.target_axis + in target_axis_to_has_explicit_nesting_level): + if (has_explicit_nesting_level + != target_axis_to_has_explicit_nesting_level[ + parsed_dim_tag.target_axis]): + raise LoopyError("may not mix C/F dim_tag specifications with " + "explicit specification of layout nesting levels") + else: + target_axis_to_has_explicit_nesting_level[parsed_dim_tag.target_axis] = \ + has_explicit_nesting_level - # }}} + # }}} - if isinstance(parsed_dim_tag, _StrideArrayDimTagBase): lnl = parsed_dim_tag.layout_nesting_level target_axis = parsed_dim_tag.target_axis if lnl is not None: