Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NewErrors] 5.5.0-dev.20240414 vs 5.4.5 #58189

Open
typescript-bot opened this issue Apr 14, 2024 · 30 comments
Open

[NewErrors] 5.5.0-dev.20240414 vs 5.4.5 #58189

typescript-bot opened this issue Apr 14, 2024 · 30 comments
Labels
Committed The team has roadmapped this issue

Comments

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 14, 2024

The following errors were reported by 5.5.0-dev.20240414, but not by 5.4.5
Pipeline that generated this bug
Logs for the pipeline run
File that generated the pipeline

This run considered 800 popular TS repos from GH (after skipping the top 0).

Successfully analyzed 499 of 800 visited repos
Outcome Count
Detected interesting changes 26
Detected no interesting changes 473
Git clone failed 6
Package install failed 85
Project-graph error in old TS 9
Too many errors in old TS 192
Unknown failure 9

Investigation Status

Repo Errors Outcome
adobe/react-spectrum 1 #56902
aidenybai/million 1 #56902
alangpierce/sucrase 2 #57847 + 9998 = new error
ardatan/graphql-tools 1 suppressImplicitAnyIndexErrors removed
ariakit/ariakit 4 ts-expect-error on a bug 😎
bitwarden/clients 2 predicate inference broke class subtyping
Chocobozzz/PeerTube 1 #57847, appears to be bug in the project code (?)
conventional-changelog/conventional-changelog 1 #57549, exact details unclear so far
framer/motion 1 #57847 detects an implicit coercion that was previously unnoticed
growthbook/growthbook 1 #57847 caused an any to now be narrowed to Function
heyxyz/hey 5
highcharts/highcharts 6 keyofStringsOnly removed
ionic-team/stencil 1 Predicate inference identifies likely bug
jupyterlab/jupyterlab 2 #57681 (don't emit reference directives)
keplergl/kepler.gl 1 Doesn't build on Windows. Likely #57681
LokerL/tts-vue 1 suppressImplicitAnyIndexErrors removed
microsoft/playwright 1 This monorepo isn't building in 5.4, skipping
microsoft/vscode 1 vscode team will investigate
misskey-dev/misskey 4 predicate inference broke subtyping
outline/outline 1 suppressImplicitAnyIndexErrors removed
sequelize/sequelize 1 Unused ts-expect-error, seems good
strapi/strapi 12 Monorepo failed to build in 5.4, skipping
t3-oss/create-t3-app 1 importsNotUsedAsValues removed
tailwindlabs/headlessui 3
TanStack/router 2 Monorepo doesn't build in 5.4, skipping
tweenjs/tween.js 1 importsNotUsedAsValues removed
@typescript-bot
Copy link
Collaborator Author

adobe/react-spectrum

5 of 10 projects failed to build with the old tsc and were ignored

packages/@spectrum-icons/illustrations/tsconfig.types.json

@typescript-bot
Copy link
Collaborator Author

aidenybai/million

3 of 4 projects failed to build with the old tsc and were ignored

website/tsconfig.json

  • error TS2322: Type '{ plugins: { legend: { display: boolean; }; }; indexAxis: "y"; scales: { x: { max: number; ticks: { format: { style: string; minimumFractionDigits: number; maximumFractionDigits: number; }; }; }; }; }' is not assignable to type '_DeepPartialObject<CoreChartOptions<"bar"> & ElementChartOptions<"bar"> & PluginChartOptions<"bar"> & DatasetChartOptions<"bar"> & ScaleChartOptions<...> & BarControllerChartOptions>'.

@typescript-bot
Copy link
Collaborator Author

alangpierce/sucrase

4 of 18 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2367: This comparison appears to be unintentional because the types 'JSXRole.NoChildren' and 'JSXRole.KeyAfterPropSpread' have no overlap.

src/tsconfig.json

  • error TS2367: This comparison appears to be unintentional because the types 'JSXRole.NoChildren' and 'JSXRole.KeyAfterPropSpread' have no overlap.

@typescript-bot
Copy link
Collaborator Author

ardatan/graphql-tools

tsconfig.json

  • error TS5102: Option 'suppressImplicitAnyIndexErrors' has been removed. Please remove it from your configuration.

@typescript-bot
Copy link
Collaborator Author

ariakit/ariakit

1 of 6 projects failed to build with the old tsc and were ignored

tsconfig.json

website/tsconfig.json

packages/ariakit-react-core/tsconfig.build.json

packages/ariakit-react/tsconfig.build.json

@typescript-bot
Copy link
Collaborator Author

bitwarden/clients

8 of 40 projects failed to build with the old tsc and were ignored

tsconfig.json

apps/web/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

Chocobozzz/PeerTube

4 of 11 projects failed to build with the old tsc and were ignored

client/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

conventional-changelog/conventional-changelog

2 of 14 projects failed to build with the old tsc and were ignored

packages/conventional-changelog-writer/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

framer/motion

3 of 4 projects failed to build with the old tsc and were ignored

packages/framer-motion/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

growthbook/growthbook

6 of 10 projects failed to build with the old tsc and were ignored

packages/back-end/tsconfig.json

  • error TS2345: Argument of type 'Function' is not assignable to parameter of type '(req: Request<any, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>, number>, next: NextFunction) => void | Promise<...>'.

@typescript-bot
Copy link
Collaborator Author

heyxyz/hey

2 of 13 projects failed to build with the old tsc and were ignored

apps/web/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

highcharts/highcharts

19 of 26 projects failed to build with the old tsc and were ignored

ts/tsconfig.json

ts/masters-es5/tsconfig.json

  • error TS5102: Option 'keyofStringsOnly' has been removed. Please remove it from your configuration.

ts/masters-datagrid/tsconfig.json

ts/masters-dashboards/tsconfig.json

ts/DataGrid/tsconfig.json

  • error TS5102: Option 'keyofStringsOnly' has been removed. Please remove it from your configuration.

ts/Dashboards/tsconfig.json

  • error TS5102: Option 'keyofStringsOnly' has been removed. Please remove it from your configuration.

@typescript-bot
Copy link
Collaborator Author

ionic-team/stencil

34 of 38 projects failed to build with the old tsc and were ignored

tsconfig.json

@typescript-bot
Copy link
Collaborator Author

jupyterlab/jupyterlab

42 of 58 projects failed to build with the old tsc and were ignored

galata/tsconfig.json

galata/extension/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

keplergl/kepler.gl

13 of 17 projects failed to build with the old tsc and were ignored

src/actions/tsconfig.production.json

@typescript-bot
Copy link
Collaborator Author

LokerL/tts-vue

tsconfig.json

  • error TS5102: Option 'suppressImplicitAnyIndexErrors' has been removed. Please remove it from your configuration.

@typescript-bot
Copy link
Collaborator Author

microsoft/playwright

4 of 15 projects failed to build with the old tsc and were ignored

packages/html-reporter/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

microsoft/vscode

7 of 54 projects failed to build with the old tsc and were ignored

src/tsconfig.monaco.json

@typescript-bot
Copy link
Collaborator Author

misskey-dev/misskey

6 of 13 projects failed to build with the old tsc and were ignored

packages/backend/tsconfig.json

packages/backend/test/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

outline/outline

tsconfig.json

  • error TS5102: Option 'suppressImplicitAnyIndexErrors' has been removed. Please remove it from your configuration.

@typescript-bot
Copy link
Collaborator Author

sequelize/sequelize

12 of 16 projects failed to build with the old tsc and were ignored

packages/core/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

strapi/strapi

76 of 118 projects failed to build with the old tsc and were ignored

packages/core/content-type-builder/server/tsconfig.json

packages/core/content-type-builder/server/tsconfig.eslint.json

packages/core/content-type-builder/server/tsconfig.build.json

@typescript-bot
Copy link
Collaborator Author

t3-oss/create-t3-app

1 of 6 projects failed to build with the old tsc and were ignored

www/tsconfig.json

  • error TS5102: Option 'importsNotUsedAsValues' has been removed. Please remove it from your configuration.

@typescript-bot
Copy link
Collaborator Author

tailwindlabs/headlessui

1 of 5 projects failed to build with the old tsc and were ignored

packages/@headlessui-vue/tsconfig.json

packages/@headlessui-react/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

TanStack/router

59 of 64 projects failed to build with the old tsc and were ignored

packages/react-cross-context/tsconfig.json

@typescript-bot
Copy link
Collaborator Author

tweenjs/tween.js

tsconfig.json

  • error TS5102: Option 'importsNotUsedAsValues' has been removed. Please remove it from your configuration.

@RyanCavanaugh
Copy link
Member

bitwarden/clients has this setup

  // Base class
  protected filterProvider(type: TwoFactorProviderType) {
    return type !== TwoFactorProviderType.OrganizationDuo;
  }

  // Derived class
  protected filterProvider(type: TwoFactorProviderType) {
    return type === TwoFactorProviderType.OrganizationDuo;
  }

So type predicate inference broke the class subtyping. They just need to add ): boolean to the base class method. FYi @willmartian @shane-melton @MGibson1

@RyanCavanaugh
Copy link
Member

sucrase got broken by #57847, it looks like this

  state.tokens[initialTokenIndex].jsxRole = JSXRole.NoChildren;
                 // this initialization gets CFA'd now
  let numExplicitChildren = 0;
  const isSelfClosing = jsxParseOpeningElement(initialTokenIndex);
  if (!isSelfClosing) {
    nextJSXExprToken();
    while (true) {
      switch (state.type) {
        case tt.jsxTagStart:
          nextJSXTagToken();
          if (match(tt.slash)) {
            nextJSXTagToken();
            jsxParseClosingElement();
            // Key after prop spread takes precedence over number of children,
            // since it means we switch to createElement, which doesn't care
            // about number of children.
            if (state.tokens[initialTokenIndex].jsxRole !== JSXRole.KeyAfterPropSpread) {
                                                     // ^^^
      //                                      apppears impossible now

@RyanCavanaugh
Copy link
Member

Chocobozzz/Peertube has a similar thing:

    for (const name of objectKeysTyped(formToBuild)) {
      formErrors[name] = ''

      const field = formToBuild[name]
      if (this.isRecursiveField(field)) {
        this.updateFormGroup(
          // FIXME: typings
          (form as any)[name],
          formErrors[name] as FormReactiveErrors,

Though it looks like a legit error in this case unless isRecursiveField actually has side effects (???)

@RyanCavanaugh
Copy link
Member

framer/motion does a compound coercion which we now detect:

            target[borderLabel] = Math.max(
                mixNumber(
                    asNumber(followRadius),
                    asNumber(leadRadius),
                    progress
                ),
                0
            )

            if (percent.test(leadRadius) || percent.test(followRadius)) {
                target[borderLabel] += "%"
            }

@RyanCavanaugh RyanCavanaugh added the Committed The team has roadmapped this issue label Apr 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Committed The team has roadmapped this issue
Projects
None yet
Development

No branches or pull requests

2 participants