-# Create references from core functions to their extension counterparts
-for f in funcs.itervalues():
- if f.extension==ext or f.extension in secondary:
- for a in f.aliases:
- aliasfunc = funcs.get(a)
- if aliasfunc:
- aliasfunc.extfunc = f
-
-def is_relevant(f):
- # Unpromoted extension functions are relevant
- if f.extension==ext and not f.aliases:
+# Find aliases for enums
+enums = [t for t in things.itervalues() if t.kind==Thing.ENUM]
+core_enums_by_value = dict((e.value, e) for e in enums if e.version)
+
+for e in enums:
+ if e.kind==t.ENUM and e.extension:
+ ce = core_enums_by_value.get(e.value)
+ if ce and ce!=e:
+ e.aliases.append(ce.name)
+
+# Create references from core things to their extension counterparts
+for t in things.itervalues():
+ if t.extension==ext or t.extension in secondary:
+ for a in t.aliases:
+ alias = things.get(a)
+ if alias:
+ alias.source = t
+
+def is_relevant(t):
+ # Unpromoted extension things are relevant
+ if t.extension==ext and not t.aliases: