Require a complete type when enumerating the fields of a class. (#2956)

Fixes a crash on invalid found by fuzzing.
This commit is contained in:
Richard Smith
2023-06-28 14:56:27 -07:00
committed by GitHub
parent 2e45dd58f9
commit a5c8cbdbf8
4 changed files with 80 additions and 52 deletions
@@ -0,0 +1,15 @@
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// AUTOUPDATE
package ExplorerTest api;
class C {
// CHECK:STDERR: COMPILATION ERROR: fail_incomplete_in_conversion.carbon:[[@LINE+2]]: type error in `as`: `{}` is not explicitly convertible to `class C`:
// CHECK:STDERR: incomplete type `class C` used in implicit conversion
var x: ({} as C);
}
fn Main() -> i32 { return 0; }