typeSatisfaction_errorLocations1.ts(4,5): error TS2345: Argument of type '{}' is not assignable to parameter of type '{ a: true; }'.
  Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
typeSatisfaction_errorLocations1.ts(5,7): error TS2322: Type 'number' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(6,5): error TS2345: Argument of type '{ a: number; }' is not assignable to parameter of type '{ a: true; }'.
  Types of property 'a' are incompatible.
    Type 'number' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(11,10): error TS2345: Argument of type '{}' is not assignable to parameter of type '{ a: true; }'.
  Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
typeSatisfaction_errorLocations1.ts(12,12): error TS2322: Type 'number' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(13,10): error TS2345: Argument of type '{ a: number; }' is not assignable to parameter of type '{ a: true; }'.
  Types of property 'a' are incompatible.
    Type 'number' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(16,5): error TS2345: Argument of type '[{ a: boolean; }]' is not assignable to parameter of type 'T'.
  'T' could be instantiated with an arbitrary type which could be unrelated to '[{ a: boolean; }]'.
typeSatisfaction_errorLocations1.ts(18,5): error TS2345: Argument of type '[{ a: true; }]' is not assignable to parameter of type 'T'.
  '[{ a: true; }]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{ a: true; }[]'.
typeSatisfaction_errorLocations1.ts(21,43): error TS2322: Type 'number' is not assignable to type 'boolean'.
typeSatisfaction_errorLocations1.ts(23,23): error TS2322: Type 'boolean' is not assignable to type 'number'.
typeSatisfaction_errorLocations1.ts(25,20): error TS1360: Type 'number' does not satisfy the expected type 'boolean'.
typeSatisfaction_errorLocations1.ts(26,7): error TS2322: Type '1' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(29,18): error TS2322: Type 'string' is not assignable to type 'number'.
typeSatisfaction_errorLocations1.ts(31,20): error TS1360: Type 'readonly [10, "20"]' does not satisfy the expected type 'number[]'.
  The type 'readonly [10, "20"]' is 'readonly' and cannot be assigned to the mutable type 'number[]'.
typeSatisfaction_errorLocations1.ts(34,9): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
typeSatisfaction_errorLocations1.ts(36,9): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
typeSatisfaction_errorLocations1.ts(39,3): error TS2322: Type 'string' is not assignable to type 'number'.
typeSatisfaction_errorLocations1.ts(43,3): error TS2322: Type 'string' is not assignable to type 'number'.
typeSatisfaction_errorLocations1.ts(43,16): error TS1360: Type 'string' does not satisfy the expected type 'number'.
typeSatisfaction_errorLocations1.ts(46,22): error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
typeSatisfaction_errorLocations1.ts(47,24): error TS2322: Type 'number' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(48,21): error TS2322: Type '{ a: number; }' is not assignable to type '{ a: true; }'.
  Types of property 'a' are incompatible.
    Type 'number' is not assignable to type 'true'.
typeSatisfaction_errorLocations1.ts(50,23): error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
typeSatisfaction_errorLocations1.ts(51,24): error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: true; }'.


==== typeSatisfaction_errorLocations1.ts (24 errors) ====
    const obj1 = { a: 1 };
    
    const fn1 = (s: { a: true }) => {};
    fn1({} satisfies unknown);
        ~~
!!! error TS2345: Argument of type '{}' is not assignable to parameter of type '{ a: true; }'.
!!! error TS2345:   Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
!!! related TS2728 typeSatisfaction_errorLocations1.ts:3:19: 'a' is declared here.
    fn1({ a: 1 } satisfies unknown);
          ~
!!! error TS2322: Type 'number' is not assignable to type 'true'.
!!! related TS6500 typeSatisfaction_errorLocations1.ts:3:19: The expected type comes from property 'a' which is declared here on type '{ a: true; }'
    fn1(obj1 satisfies unknown);
        ~~~~
!!! error TS2345: Argument of type '{ a: number; }' is not assignable to parameter of type '{ a: true; }'.
!!! error TS2345:   Types of property 'a' are incompatible.
!!! error TS2345:     Type 'number' is not assignable to type 'true'.
    
    class Cls1 {
      constructor(p: { a: true }) {}
    }
    new Cls1({} satisfies unknown);
             ~~
!!! error TS2345: Argument of type '{}' is not assignable to parameter of type '{ a: true; }'.
!!! error TS2345:   Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
!!! related TS2728 typeSatisfaction_errorLocations1.ts:9:20: 'a' is declared here.
    new Cls1({ a: 1 } satisfies unknown);
               ~
!!! error TS2322: Type 'number' is not assignable to type 'true'.
!!! related TS6500 typeSatisfaction_errorLocations1.ts:9:20: The expected type comes from property 'a' which is declared here on type '{ a: true; }'
    new Cls1(obj1 satisfies unknown);
             ~~~~
!!! error TS2345: Argument of type '{ a: number; }' is not assignable to parameter of type '{ a: true; }'.
!!! error TS2345:   Types of property 'a' are incompatible.
!!! error TS2345:     Type 'number' is not assignable to type 'true'.
    
    function fn2<T extends { a: true }[]>(f: (...args: T) => void) {
      f({ a: true } satisfies unknown);
        ~~~~~~~~~~~
!!! error TS2345: Argument of type '[{ a: boolean; }]' is not assignable to parameter of type 'T'.
!!! error TS2345:   'T' could be instantiated with an arbitrary type which could be unrelated to '[{ a: boolean; }]'.
      const o = { a: true as const };
      f(o satisfies unknown);
        ~
!!! error TS2345: Argument of type '[{ a: true; }]' is not assignable to parameter of type 'T'.
!!! error TS2345:   '[{ a: true; }]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{ a: true; }[]'.
    }
    
    const tuple1: [boolean, boolean] = [true, 100 satisfies unknown];
                                              ~~~
!!! error TS2322: Type 'number' is not assignable to type 'boolean'.
    
    const obj2 = { a: 10, b: true } satisfies Record<string, number>;
                          ~
!!! error TS2322: Type 'boolean' is not assignable to type 'number'.
    
    const literal1 = 1 satisfies boolean;
                       ~~~~~~~~~
!!! error TS1360: Type 'number' does not satisfy the expected type 'boolean'.
    const literal2: true = 1 satisfies number;
          ~~~~~~~~
!!! error TS2322: Type '1' is not assignable to type 'true'.
    
    declare function fn3(...args: unknown[]): void;
    fn3(10, ...([10, "20"] satisfies number[]));
                     ~~~~
!!! error TS2322: Type 'string' is not assignable to type 'number'.
    const tuple2 = [10, "20"] as const;
    fn3(10, ...(tuple2 satisfies number[]));
                       ~~~~~~~~~
!!! error TS1360: Type 'readonly [10, "20"]' does not satisfy the expected type 'number[]'.
!!! error TS1360:   The type 'readonly [10, "20"]' is 'readonly' and cannot be assigned to the mutable type 'number[]'.
    
    declare function fn4(...args: number[]): void;
    fn4(10, ...(["10", "20"] satisfies readonly string[]));
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
    const tuple3 = ["10", "20"] as const;
    fn4(10, ...(tuple3 satisfies readonly string[]));
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
    
    function fn5(): number {
      return "foo" satisfies unknown;
      ~~~~~~
!!! error TS2322: Type 'string' is not assignable to type 'number'.
    }
    
    function fn6(): number {
      return "foo" satisfies number;
      ~~~~~~
!!! error TS2322: Type 'string' is not assignable to type 'number'.
                   ~~~~~~~~~
!!! error TS1360: Type 'string' does not satisfy the expected type 'number'.
    }
    
    ((): { a: true } => ({}) satisfies unknown)();
                         ~~
!!! error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
!!! related TS2728 typeSatisfaction_errorLocations1.ts:46:8: 'a' is declared here.
    ((): { a: true } => ({ a: 1 }) satisfies unknown)();
                           ~
!!! error TS2322: Type 'number' is not assignable to type 'true'.
!!! related TS6500 typeSatisfaction_errorLocations1.ts:47:8: The expected type comes from property 'a' which is declared here on type '{ a: true; }'
    ((): { a: true } => obj1 satisfies unknown)();
                        ~~~~
!!! error TS2322: Type '{ a: number; }' is not assignable to type '{ a: true; }'.
!!! error TS2322:   Types of property 'a' are incompatible.
!!! error TS2322:     Type 'number' is not assignable to type 'true'.
    
    ((): { a: true } => (({}) satisfies unknown) satisfies unknown)();
                          ~~
!!! error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
!!! related TS2728 typeSatisfaction_errorLocations1.ts:50:8: 'a' is declared here.
    ((): { a: true } => ((({}) satisfies unknown)) satisfies unknown)();
                           ~~
!!! error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: true; }'.
!!! related TS2728 typeSatisfaction_errorLocations1.ts:51:8: 'a' is declared here.
    