| class MyClass (α : Type u) where | |
| point : α | |
| /-- | |
| error: This instance has 1 argument that cannot be inferred using typeclass synthesis. Specifically | |
| argument 3: `(n : Nat)` | |
| These arguments are not instance-implicit and appear neither in another instance-implicit argument nor the return type, so they cannot be inferred using typeclass synthesis. | |
| --- | |
| warning: declaration uses `sorry` | |
| -/ | |
| #guard_msgs in | |
| instance bad1 {α : Type} [Inhabited α] (n : Nat) : MyClass α := sorry | |
| /-- | |
| error: This instance has 2 arguments that cannot be inferred using typeclass synthesis. Specifically | |
| argument 3: `(n : Nat)` | |
| argument 4: `(m : Nat)` | |
| These arguments are not instance-implicit and appear neither in another instance-implicit argument nor the return type, so they cannot be inferred using typeclass synthesis. | |
| --- | |
| warning: declaration uses `sorry` | |
| -/ | |
| #guard_msgs in | |
| instance bad2 {α : Type} [Inhabited α] (n m : Nat) : MyClass α := sorry | |
| /-- warning: declaration uses `sorry` -/ | |
| #guard_msgs in | |
| instance good {α : Type} [Inhabited α] : MyClass α := sorry | |
| /-- | |
| error: This instance has 4 arguments that cannot be inferred using typeclass synthesis. Specifically | |
| argument 2: `{β : Type}` | |
| argument 3: `(b : Array β)` | |
| argument 4: `(a : Array α)` | |
| argument 6: `⦃h : b = b⦄` | |
| These arguments are not instance-implicit and appear neither in another instance-implicit argument nor the return type, so they cannot be inferred using typeclass synthesis. | |
| --- | |
| warning: declaration uses `sorry` | |
| -/ | |
| #guard_msgs in | |
| instance bad3 {α β : Type} (b : Array β) (a : Array α) [Inhabited α] | |
| ⦃h : b = b⦄ | |
| -- Note: `usedA` is a dependency of a dependency of a dependency of the return type | |
| (usedA : Array α) (i : Fin usedA.size) (j : Fin i.val) : | |
| Nonempty { ar : Array α // ar.size = j.val } := sorry | |
| -- The following checks that the error shows up at line containing `attribute` | |
| -- (and not at line where the decl is defined). | |
| /-- warning: declaration uses `sorry` -/ | |
| #guard_msgs in | |
| @[implicit_reducible] | |
| def bad4 {α : Type} [Inhabited α] (n : Nat) : MyClass α := sorry | |
| /-- | |
| error: This instance has 1 argument that cannot be inferred using typeclass synthesis. Specifically | |
| argument 3: `(n : Nat)` | |
| These arguments are not instance-implicit and appear neither in another instance-implicit argument nor the return type, so they cannot be inferred using typeclass synthesis. | |
| -/ | |
| #guard_msgs in | |
| attribute [instance] bad4 | |
| /-- warning: declaration uses `sorry` -/ | |
| #guard_msgs in | |
| instance bad5 : sorry := sorry |