JS: support enumValues<E>() and enumValueOf<E>("name") intrinsics.

This commit is contained in:
Anton Bannykh
2016-12-05 16:43:12 +03:00
parent c31f91c28a
commit addd24955b
6 changed files with 183 additions and 22 deletions
@@ -587,4 +587,17 @@ public class DescriptorUtils {
ClassDescriptor containingClass = getContainingClass(descriptor);
return containingClass != null && isEffectivelyExternal(containingClass);
}
@NotNull
public static FunctionDescriptor getFunctionByName(@NotNull MemberScope scope, @NotNull Name name) {
Collection<DeclarationDescriptor> functions = scope.getContributedDescriptors(DescriptorKindFilter.FUNCTIONS,
MemberScope.Companion.getALL_NAME_FILTER());
for (DeclarationDescriptor d : functions) {
if (d instanceof FunctionDescriptor && name.equals(d.getOriginal().getName())) {
return (FunctionDescriptor) d;
}
}
throw new IllegalStateException("Function not found");
}
}