function inspectExperimentalPragmaStatement(emitted) {
            if (emitted.exit) {
                return;
            }

            const { node } = emitted,
                nodesAllowedAbove = ["ExperimentalPragmaStatement", "PragmaStatement"],
                programNode = context.getSourceCode().getParent(node);

            for (let childNode of programNode.body) {
                // If we've reached this exp. pragma while traversing body, it means its position is fine.
                if (node.start === childNode.start) {
                    return;
                }

                // We found the first node not allowed above experimental pragma, report and exit.
                const pragmaCode = context.getSourceCode().getText(node);

                if (nodesAllowedAbove.indexOf(childNode.type) < 0) {
                    const errObject = {
                        node,
                        fix(fixer) {
                            return [fixer.remove(node),
                                fixer.insertTextBefore(childNode, `${pragmaCode}${EOL}`)];
                        },
                        message: "Experimental Pragma must precede everything except Solidity Pragma."
                    };

                    return context.report(errObject);
                }
            }
        }
function inspectExperimentalPragmaStatement(emitted) {
            if (emitted.exit) {
                return;
            }

            const { node } = emitted,
                nodesAllowedAbove = ["ExperimentalPragmaStatement", "PragmaStatement"],
                programNode = context.getSourceCode().getParent(node);

            for (let childNode of programNode.body) {
                
                if (node.start === childNode.start) {
                    return;
                }

                
                const pragmaCode = context.getSourceCode().getText(node);

                if (nodesAllowedAbove.indexOf(childNode.type) < 0) {
                    const errObject = {
                        node,
                        fix(fixer) {
                            return [fixer.remove(node),
                                fixer.insertTextBefore(childNode, `${pragmaCode}${EOL}`)];
                        },
                        message: "Experimental Pragma must precede everything except Solidity Pragma."
                    };

                    return context.report(errObject);
                }
            }
        }
function inspectExperimentalPragmaStatement ( emitted ) { if ( emitted . exit ) { return ; } const { node } = emitted , nodesAllowedAbove = [ "ExperimentalPragmaStatement" , "PragmaStatement" ] , programNode = context . getSourceCode ( ) . getParent ( node ) ; for ( let childNode of programNode . body ) { // If we've reached this exp. pragma while traversing body, it means its position is fine. if ( node . start === childNode . start ) { return ; } // We found the first node not allowed above experimental pragma, report and exit. const pragmaCode = context . getSourceCode ( ) . getText ( node ) ; if ( nodesAllowedAbove . indexOf ( childNode . type ) < 0 ) { const errObject = { node , fix ( fixer ) { return [ fixer . remove ( node ) , fixer . insertTextBefore ( childNode , ` ${ pragmaCode } ${ EOL } ` ) ] ; } , message : "Experimental Pragma must precede everything except Solidity Pragma." } ; return context . report ( errObject ) ; } } }
Experimental pragmas, if they exist, must be above everything EXCEPT pragma solidity & other experimental pragmas.
Experimental pragmas if they exist must be above everything EXCEPT pragma solidity & other experimental pragmas .