3,079 matches across 25 files for TODO
snippet_mode: grep · sorted by relevance
41 rules: {
42 'ft-flow/array-style-complex-type': [OFF, 'verbose'],
43▶ 'ft-flow/array-style-simple-type': [OFF, 'verbose'], // TODO should be WARNING
44 'ft-flow/boolean-style': ERROR,
45 'ft-flow/no-dupe-keys': ERROR,
· · ·
46 'ft-flow/no-primitive-constructor-types': ERROR,
47▶ 'ft-flow/no-types-missing-file-annotation': OFF, // TODO should be ERROR
48 'ft-flow/no-unused-expressions': ERROR,
49 // 'ft-flow/no-weak-types': WARNING,
· · ·
104 'no-process-env': OFF,
105 'no-proto': ERROR,
106▶ 'no-redeclare': OFF, // TODO should be WARNING?
107 'no-return-assign': OFF,
108 'no-script-url': ERROR,
· · ·
267
268 // Enforced by Prettier
269▶ // TODO: Prettier doesn't handle long strings or long comments. Not a big
270 // deal. But I turned it off because loading the plugin causes some obscure
271 // syntax error and it didn't seem worth investigating.
203 - "-r=xplat --env=production --variant=false"
204 - "-r=xplat --env=production --variant=true"
205▶ # TODO: Test more persistent configurations?
206 - "-r=stable --env=development --persistent"
207 - "-r=experimental --env=development --persistent"
· · ·
330 -r=experimental --env=production,
331
332▶ # TODO: Update test config to support www build tests
333 # - "-r=www-classic --env=development --variant=false"
334 # - "-r=www-classic --env=production --variant=false"
· · ·
340 # - "-r=www-modern --env=production --variant=true"
341
342▶ # TODO: Update test config to support xplat build tests
343 # - "-r=xplat --env=development --variant=false"
344 # - "-r=xplat --env=development --variant=true"
· · ·
346 # - "-r=xplat --env=production --variant=true"
347
348▶ # TODO: Test more persistent configurations?
349 ]
350 shard:
· · ·
477 # Compress build directory into a single tarball for easy download
478 - run: tar -zcvf ./build.tgz ./build
479▶ # TODO: Migrate scripts to use `build` directory instead of `build2`
480 - run: cp ./build.tgz ./build2.tgz
481 - name: Archive build artifacts
+ 1 more matches in this file
364 with:
365 script: |
366▶ // TODO: Move this to a script file.
367 // We currently can't call scripts from the repo because
368 // at this point in the workflow, we're on the compiled
· · ·
374 const {execSync} = require('child_process');
375
376▶ // TODO: when we move this to a script, we can use this from npm.
377 // Copy of signedsource since we can't install deps on this branch.
378 const GENERATED = '@' + 'generated';
22
23# contains invalid graphql`...` which results in a promise rejection error from `yarn prettier-all`.
24▶compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.todo-kitchensink.js
25# contains invalid const reassignment; the fixture asserts the compiler diagnostic.
26compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.invalid-reassign-const.js
· · ·
28compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/memoize-value-block-value-sequence.js
29# preserves minimized production input; formatting changes the reduced repro shape.
30▶compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/todo-round3_promote_used_temps.js
31
32compiler/crates
52### Error Handling
53- Non-null assertions (`!` in TS) -> `.unwrap()` or similar panic
54▶- `CompilerError.invariant()`, `CompilerError.throwTodo()`, `throw` -> `Result<_, CompilerDiagnostic>` with `Err(...)`
55- `pushDiagnostic()` with invariant errors -> `return Err(...)`
56- `env.recordError()` or non-invariant `pushDiagnostic()` -> accumulate on `Environment` (keep as-is)
1033. Check for `Impure`, `Render`, `Capture` effects on instructions
1044. The pass ordering in `Pipeline.ts` shows when effects are populated vs validated
105▶5. Todo errors indicate unsupported but known patterns; Invariant errors indicate unexpected states
106
107## Important Reminders
91...
92AnalyseFunctions: partial (1700/1717)
93▶InferMutationAliasingEffects: todo
94...
95
· · ·
112- `complete (N/N)` — all tests passing through this pass
113- `partial (passed/total)` — some test failures remain
114▶- `todo` — not yet ported
115
116Update the Status section after every test run to reflect the latest results.
13 - `src/Entrypoint/Pipeline.ts` - Main compilation pipeline with pass ordering
14 - `src/__tests__/fixtures/compiler/` - Test fixtures
15▶ - `error.todo-*.js` - Unsupported feature, correctly throws Todo error (graceful bailout)
16 - `error.bug-*.js` - Known bug, throws wrong error type or incorrect behavior
17 - `*.expect.md` - Expected output for each fixture
· · ·
268
269**Error categories:**
270▶- `CompilerError.throwTodo()` — Unsupported but known pattern. Graceful bailout. Can be caught by `tryRecord()`.
271- `CompilerError.invariant()` — Truly unexpected/invalid state. Always throws immediately, never caught by `tryRecord()`.
272- Non-`CompilerError` exceptions — Always re-thrown.
1▶# Rust port: e2e parity TODO
2
3Status snapshot (after the current stack lands):
· · ·
36 local or context"). Rust handles the same code without tripping the
37 invariant.
38▶- `error.todo-jsx-intrinsic-tag-matches-local-binding.js` — SWC pipeline
39 emits a Todo bailout (`[hoisting] EnterSSA: Expected identifier to be
40 defined before being used`) that the Babel path does not.
· · ·
39▶ emits a Todo bailout (`[hoisting] EnterSSA: Expected identifier to be
40 defined before being used`) that the Babel path does not.
41- `error.todo-repro-named-function-with-shadowed-local-same-name.js` —
· · ·
41▶- `error.todo-repro-named-function-with-shadowed-local-same-name.js` —
42 Babel errors; SWC compiles.
43- `new-mutability/error.todo-repro-named-function-with-shadowed-local-same-name.js`
· · ·
43▶- `new-mutability/error.todo-repro-named-function-with-shadowed-local-same-name.js`
44 — same as above with the new mutation-aliasing model enabled.
45- `error.todo-rust-as-expression-assignment-target.tsx` — Babel errors;
+ 10 more matches in this file
158 }
159
160▶ // TODO: port assertConsistentIdentifiers
161 if context.debug_enabled {
162 context.log_debug(DebugLogEntry::new(
· · ·
165 ));
166 }
167▶ // TODO: port assertTerminalSuccessorsExist
168 if context.debug_enabled {
169 context.log_debug(DebugLogEntry::new(
· · ·
209 }
210
211▶ // TODO: port assertConsistentIdentifiers
212 if context.debug_enabled {
213 context.log_debug(DebugLogEntry::new(
· · ·
691 }
692
693▶ // TODO: port assertValidBlockNesting
694 if context.debug_enabled {
695 context.log_debug(DebugLogEntry::new(
· · ·
715 }
716
717▶ // TODO: port assertValidBlockNesting
718 if context.debug_enabled {
719 context.log_debug(DebugLogEntry::new(
+ 2 more matches in this file
137 env.record_diagnostic(
138 CompilerDiagnostic::new(
139▶ ErrorCategory::Todo,
140 "Important source location missing in generated code",
141 Some(format!(
· · ·
165 env.record_diagnostic(
166 CompilerDiagnostic::new(
167▶ ErrorCategory::Todo,
168 "Important source location has wrong node type in generated code",
169 Some(format!(
1022 "lone-surrogate-string-values",
1023 "component-in-object-method-body.flow",
1024▶ "error.todo-hoist-type-alias-before-declaration",
1025 "error.todo-round2_severity_diff",
1026 "error.todo-update-expression-context-variable-via-type-annotation",
· · ·
1025▶ "error.todo-round2_severity_diff",
1026 "error.todo-update-expression-context-variable-via-type-annotation",
1027 ];
· · ·
1026▶ "error.todo-update-expression-context-variable-via-type-annotation",
1027 ];
1028
28 RenderSetState,
29 Invariant,
30▶ Todo,
31 Syntax,
32 UnsupportedSyntax,
· · ·
55 | ErrorCategory::UnsupportedSyntax => ErrorSeverity::Warning,
56
57▶ // Todo is Hint
58 ErrorCategory::Todo => ErrorSeverity::Hint,
59
· · ·
58▶ ErrorCategory::Todo => ErrorSeverity::Hint,
59
60 // Invariant and all others are Error severity
· · ·
170 }
171
172▶ /// Create a Todo diagnostic (matches TS `CompilerError.throwTodo()`).
173 pub fn todo(reason: impl Into<String>, loc: Option<SourceLocation>) -> Self {
174 let reason = reason.into();
· · ·
173▶ pub fn todo(reason: impl Into<String>, loc: Option<SourceLocation>) -> Self {
174 let reason = reason.into();
175 let mut diag = Self::new(ErrorCategory::Todo, reason.clone(), None);
+ 5 more matches in this file
408 }
409
410▶ /// Check if any recorded errors have Todo category.
411 /// In TS, Todo errors throw immediately via CompilerError.throwTodo().
412 pub fn has_todo_errors(&self) -> bool {
· · ·
411▶ /// In TS, Todo errors throw immediately via CompilerError.throwTodo().
412 pub fn has_todo_errors(&self) -> bool {
413 self.errors.details.iter().any(|d| match d {
· · ·
412▶ pub fn has_todo_errors(&self) -> bool {
413 self.errors.details.iter().any(|d| match d {
414 react_compiler_diagnostics::CompilerErrorOrDiagnostic::Diagnostic(d) => {
· · ·
415▶ d.category == react_compiler_diagnostics::ErrorCategory::Todo
416 }
417 react_compiler_diagnostics::CompilerErrorOrDiagnostic::ErrorDetail(d) => {
· · ·
418▶ d.category == react_compiler_diagnostics::ErrorCategory::Todo
419 }
420 })
+ 3 more matches in this file
75///
76/// Fields that would require passing JS functions across the JS/Rust boundary
77▶/// are omitted with TODO comments. The Rust port uses hardcoded defaults for
78/// these (e.g., `defaultModuleTypeProvider`).
79#[derive(Debug, Clone, Serialize, Deserialize)]
· · ·
108 pub validate_exhaustive_effect_dependencies: ExhaustiveEffectDepsMode,
109
110▶ // TODO: flowTypeProvider — requires JS function callback.
111 #[serde(default = "default_true")]
112 pub enable_optional_dependencies: bool,
644 ("findIndex".to_string(), find_index),
645 ("join".to_string(), join),
646▶ // TODO: rest of Array properties
647 ],
648 );
1740
1741 // Legacy signature
1742▶ let mut todo_errors: Vec<react_compiler_diagnostics::CompilerErrorDetail> =
1743 Vec::new();
1744 let legacy_effects = compute_effects_for_legacy_signature(
· · ·
1751 env,
1752 &context.function_values,
1753▶ &mut todo_errors,
1754 );
1755 // Todo errors should short-circuit (TS throws throwTodo)
· · ·
1755▶ // Todo errors should short-circuit (TS throws throwTodo)
1756 if let Some(err_detail) = todo_errors.into_iter().next() {
1757 return Err(CompilerDiagnostic::from_detail(err_detail));
· · ·
1756▶ if let Some(err_detail) = todo_errors.into_iter().next() {
1757 return Err(CompilerDiagnostic::from_detail(err_detail));
1758 }
· · ·
2587 env: &Environment,
2588 function_values: &FxHashMap<ValueId, FunctionId>,
2589▶ todo_errors: &mut Vec<react_compiler_diagnostics::CompilerErrorDetail>,
2590) -> Vec<AliasingEffect> {
2591 let return_value_reason = signature.return_value_reason.unwrap_or(ValueReason::Other);
+ 6 more matches in this file
509 _ => {
510 builder.record_error(CompilerErrorDetail {
511▶ category: ErrorCategory::Todo,
512 reason: format!(
513 "(BuildHIR::lowerMemberExpression) Handle {:?} property",
· · ·
592 _ => {
593 builder.record_error(CompilerErrorDetail {
594▶ category: ErrorCategory::Todo,
595 reason: format!(
596 "(BuildHIR::lowerMemberExpression) Handle {:?} property",
· · ·
715 ) {
716 builder.record_error(CompilerErrorDetail {
717▶ category: ErrorCategory::Todo,
718 reason: "(BuildHIR::lowerExpression) Pipe operator not supported".to_string(),
719 description: None,
· · ·
758 builder.record_error(CompilerErrorDetail {
759 reason: "Unsupported delete target".to_string(),
760▶ category: ErrorCategory::Todo,
761 loc: loc.clone(),
762 description: None,
· · ·
802 builder.record_error(CompilerErrorDetail {
803 reason: "throw expressions are not supported".to_string(),
804▶ category: ErrorCategory::Todo,
805 loc: loc.clone(),
806 description: None,
+ 41 more matches in this file
255}
256
257▶/// Record the TS-faithful Todo for an unsupported assignment-target wrapper
258/// node, mirroring the TypeScript `FindContextIdentifiers` pass. TS throws
259/// immediately (CompilerError.throwTodo in handleAssignment's default case),
· · ·
259▶/// immediately (CompilerError.throwTodo in handleAssignment's default case),
260/// aborting before BuildHIR ever runs or logs, so this must return Err rather
261/// than record-and-continue: otherwise Rust emits HIR debug entries for a
· · ·
269 let mut err = CompilerError::new();
270 err.push_error_detail(CompilerErrorDetail {
271▶ category: ErrorCategory::Todo,
272 reason: format!(
273 "[FindContextIdentifiers] Cannot handle Object destructuring assignment target {type_name}"