From b353015e75ac2763369b16576aa6b60c39aabdab Mon Sep 17 00:00:00 2001 From: Marc Guasch Date: Mon, 4 Oct 2021 11:05:30 +0200 Subject: [PATCH] Import external references in the right order --- internal/fields/validate.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/fields/validate.go b/internal/fields/validate.go index 68e630b2ad..6ceee110cb 100644 --- a/internal/fields/validate.go +++ b/internal/fields/validate.go @@ -195,6 +195,14 @@ func (v *Validator) validateScalarElement(key string, val interface{}) error { return fmt.Errorf(`field "%s" is undefined`, key) } + if !v.disabledDependencyManagement && definition.External != "" { + def, err := v.FieldDependencyManager.ImportField(definition.External, key) + if err != nil { + return errors.Wrapf(err, "can't import field (field: %s)", key) + } + definition = &def + } + // Convert numeric keyword fields to string for validation. _, found := v.numericKeywordFields[key] if (found || v.defaultNumericConversion) && isNumericKeyword(*definition, val) { @@ -283,14 +291,6 @@ func (v *Validator) parseElementValue(key string, definition FieldDefinition, va return nil // it's an array, but it's not possible to extract the single value. } - if !v.disabledDependencyManagement && definition.External != "" { - var err error - definition, err = v.FieldDependencyManager.ImportField(definition.External, key) - if err != nil { - return errors.Wrapf(err, "can't import field (field: %s)", key) - } - } - var valid bool switch definition.Type { case "constant_keyword":