Skip to content

Commit

Permalink
compiler: Handle TSNonNullAssertion expressions
Browse files Browse the repository at this point in the history
  • Loading branch information
henryqdineen committed May 22, 2024
1 parent 3ac551e commit cff78dd
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2407,6 +2407,10 @@ function lowerExpression(
loc: expr.node.loc ?? GeneratedSource,
};
}
case "TSNonNullExpression": {
let expr = exprPath as NodePath<t.TSNonNullExpression>;
return lowerExpression(builder, expr.get("expression"));
}
default: {
builder.errors.push({
reason: `(BuildHIR::lowerExpression) Handle ${exprPath.type} expressions`,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

## Input

```javascript
interface ComponentProps {
name?: string;
}

function Component(props: ComponentProps) {
return props.name!.toUpperCase();
}

export const FIXTURE_ENTRYPOINT = {
fn: Component,
params: [{ name: "Alice" }],
};

```

## Code

```javascript
import { c as _c } from "react/compiler-runtime";
interface ComponentProps {
name?: string;
}

function Component(props) {
const $ = _c(2);
let t0;
if ($[0] !== props.name) {
t0 = props.name.toUpperCase();
$[0] = props.name;
$[1] = t0;
} else {
t0 = $[1];
}
return t0;
}

export const FIXTURE_ENTRYPOINT = {
fn: Component,
params: [{ name: "Alice" }],
};

```
### Eval output
(kind: ok) "ALICE"
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
interface ComponentProps {
name?: string;
}

function Component(props: ComponentProps) {
return props.name!.toUpperCase();
}

export const FIXTURE_ENTRYPOINT = {
fn: Component,
params: [{ name: "Alice" }],
};

0 comments on commit cff78dd

Please sign in to comment.