Skip to content

jsx-no-constructed-context-values: Cannot read property 'set' of undefined #2894

@AriPerkkio

Description

@AriPerkkio

Hello, jsx-no-constructed-context-values rule seems to crash in certain cases. This issue was spotted by automated CI run - it is not blocking my development or anything. https://github.com/AriPerkkio/eslint-remote-tester/actions/runs/454180745

"eslint-plugin-react": "^7.22.0", 
{ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2020, "sourceType": "module", "ecmaFeatures": { "jsx": true } }, "settings": { "react": { "version": "16.13.1" } }, "plugins": ["react"], "rules": { "react/jsx-no-constructed-context-values": "error" } } 

Minimal repro:

The as <type> triggers the crash.

import React from 'react'; import MyContext from './MyContext'; const value = ''; function ContextProvider(props) { return ( <MyContext.Provider value={value as any}> {props.children} </MyContext.Provider> ) }
TypeError: Cannot read property 'set' of undefined Occurred while linting <text>:140 at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:25:41) 
Crash reports from real projects

Rule: jsx-no-constructed-context-values

  • Message: Cannot read property 'set' of undefined Occurred while linting <text>:140
  • Path: rishavanand/github-profilinator/src/context/GlobalContextProvider.tsx
  • Link
 shiftField: shiftField, changeColumnCount: changeColumnCount, }; return <globalContext.Provider value={globalContextData as GlobalContext}>{props.children}</globalContext.Provider>; }; const wrapWithProvider = ({ element }: { element: React.ReactChildren }) => <Provider>{element}</Provider>; export default wrapWithProvider;
TypeError: Cannot read property 'set' of undefined Occurred while linting <text>:140 at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:25:41) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:113:14) at JSXOpeningElement(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:179:31) at /home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:58 at Array.forEach (<anonymous>) at Object.emit (/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:38) at NodeEventGenerator.applySelector(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:254:26) at NodeEventGenerator.applySelectors(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:283:22) at NodeEventGenerator.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:297:14) at CodePathAnalyzer.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:711:23) 

Rule: jsx-no-constructed-context-values

  • Message: Cannot read property 'set' of undefined Occurred while linting <text>:28
  • Path: jamesknelson/react-routing-library/src/components/routingProvider.tsx
  • Link
 <RouterProvider navigation={navigation} request={output.request} pendingRequest={output.pendingRequest}> <RouterContentContext.Provider value={content}> {children === undefined ? <Content /> : children} </RouterContentContext.Provider> </RouterProvider> ) }
TypeError: Cannot read property 'set' of undefined Occurred while linting <text>:28 at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:25:41) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:86:31) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:86:31) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:86:31) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:113:14) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:52:32) at JSXOpeningElement(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:179:31) at /home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:58 at Array.forEach (<anonymous>) at Object.emit (/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:38) 

Rule: jsx-no-constructed-context-values

  • Message: Cannot read property 'set' of undefined Occurred while linting <text>:25
  • Path: Glue42/core/packages/react-hooks/tests/useGlue.spec.tsx
  • Link
 result = useGlue<{ id: number }>(callback); }, { wrapper: ({ children }) => ( <GlueContext.Provider value={mockedGlue as any}> {children} </GlueContext.Provider> ), } );
TypeError: Cannot read property 'set' of undefined Occurred while linting <text>:25 at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:25:41) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:113:14) at JSXOpeningElement(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:179:31) at /home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:58 at Array.forEach (<anonymous>) at Object.emit (/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:38) at NodeEventGenerator.applySelector(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:254:26) at NodeEventGenerator.applySelectors(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:283:22) at NodeEventGenerator.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:297:14) at CodePathAnalyzer.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:711:23) 

Rule: jsx-no-constructed-context-values

  • Message: Cannot read property 'set' of undefined Occurred while linting <text>:100
  • Path: commercelayer/commercelayer-react-components/src/components/OrderContainer.tsx
  • Link
 setLocalOrder, }), } return ( <OrderContext.Provider value={orderValue as OrderState}> {children} </OrderContext.Provider> ) }
TypeError: Cannot read property 'set' of undefined Occurred while linting <text>:100 at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:25:41) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:113:14) at JSXOpeningElement(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:179:31) at /home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:58 at Array.forEach (<anonymous>) at Object.emit (/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:38) at NodeEventGenerator.applySelector(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:254:26) at NodeEventGenerator.applySelectors(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:283:22) at NodeEventGenerator.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:297:14) at CodePathAnalyzer.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:711:23) 

Rule: jsx-no-constructed-context-values

  • Message: Cannot read property 'set' of undefined Occurred while linting <text>:146
  • Path: csound/web-ide/src/components/file-tree/context.tsx
  • Link
 onDragEnd={(result) => dispatch({ type: "handleDrop", payload: result, project }) } > <DnDStateContext.Provider value={state as any}> <DnDDispatchContext.Provider value={dispatch}> {children} </DnDDispatchContext.Provider> </DnDStateContext.Provider> </DragDropContext>
TypeError: Cannot read property 'set' of undefined Occurred while linting <text>:146 at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:25:41) at isConstruction(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:113:14) at JSXOpeningElement(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint-plugin-react/lib/rules/jsx-no-constructed-context-values.js:179:31) at /home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:58 at Array.forEach (<anonymous>) at Object.emit (/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/safe-emitter.js:45:38) at NodeEventGenerator.applySelector(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:254:26) at NodeEventGenerator.applySelectors(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:283:22) at NodeEventGenerator.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/node-event-generator.js:297:14) at CodePathAnalyzer.enterNode(/home/runner/work/eslint-remote-tester/eslint-remote-tester/ci/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:711:23) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions