Skip to content

Commit de5c2c9

Browse files
committed
Add missing outer namespaces in absolute class name
1 parent 9a962a0 commit de5c2c9

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

lib/flatbuffers/generator.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ def to_namespaced_class_name(namespaces, name)
7070
components.join("::")
7171
end
7272

73+
def to_absolute_class_name(outer_namespaces, namespaces, name)
74+
namespaces = outer_namespaces + namespaces if outer_namespaces
75+
"::#{to_namespaced_class_name(namespaces, name)}"
76+
end
77+
7378
def to_constant_name(name)
7479
to_upper_snake_case(name)
7580
end
@@ -241,7 +246,9 @@ def generate_enum(writer, enum)
241246
if enum.union?
242247
union = @schema.objects[value.union_type.index]
243248
*union_namespaces, union_name = denamespace(union.name)
244-
klass = "::#{to_namespaced_class_name(union_namespaces, union_name)}"
249+
klass = to_absolute_class_name(@outer_namespaces,
250+
union_namespaces,
251+
union_name)
245252
relative_union_namespaces =
246253
resolve_namespaces(union_namespaces, namespaces)
247254
path_components = relative_union_namespaces.collect do |ns|
@@ -578,7 +585,7 @@ def resolve_class_name(type,
578585
to_namespaced_class_name(relative_namespaces, name)
579586
else
580587
# We need to use absolute hierarchy
581-
"::#{to_namespaced_class_name(namespaces, name)}"
588+
to_absolute_class_name(@outer_namespaces, namespaces, name)
582589
end
583590
end
584591
end

0 commit comments

Comments
 (0)