function checkLiteralNode()

in rules/directive-restrict.js [48:97]


        function checkLiteralNode(node) {
            if (node.type !== 'Literal') {
                return;
            }
            var directiveNode;
            context.getAncestors().some(function(ancestor) {
                if (utils.isAngularDirectiveDeclaration(ancestor)) {
                    directiveNode = ancestor;
                    return true;
                }
            });

            if (!directiveNode) {
                // Try to find an ancestor function used as definition for one of the found directives
                context.getAncestors().some(function(ancestor) {
                    if (isFunctionDeclaration(ancestor)) {
                        if (!ancestor.id) {
                            return false;
                        }

                        var fnName = ancestor.id.name;

                        var correspondingDirective = foundDirectives.find(function(directive) {
                            var directiveFnName = getDirectiveFunctionName(directive);
                            return directiveFnName === fnName;
                        });

                        directiveNode = correspondingDirective;
                        return true;
                    }
                });
            }

            // The restrict property was not defined inside of a directive.
            if (!directiveNode) {
                return;
            }
            if (!explicitRestrict && defaultRestrictions.indexOf(node.value) !== -1) {
                context.report(node, 'No need to explicitly specify a default directive restriction');
                return;
            }

            if (!restrictRegExp.test(node.value)) {
                context.report(directiveNode, 'Disallowed directive restriction. It must be one of {{allowed}} in that order', {
                    allowed: restrictOpt
                });
            }

            checkedDirectives.push(directiveNode);
        }