mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 17:21:04 +01:00
Implement unused pattern bindings, continued (#6518)
Implementation of unused pattern bindings #2022, continued. Whereas previous PR #6460 took care of parsing, and PR #6479 prepared the stage by using _ in some test cases, this PR has the the actual implementation, using a simple dataflow analysis. --------- Co-authored-by: Burak Emir <bqe@google.com> Co-authored-by: jonmeow <jperkins@google.com>
This commit is contained in:
co-authored by
Burak Emir
jonmeow
parent
bea24a8bee
commit
fdb188ccfd
@@ -23,14 +23,14 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import Cpp library "header.h";
|
||||
|
||||
fn F[T:! type](x: T) {
|
||||
fn F[T:! type](unused x: T) {
|
||||
// TODO: This should be treated as being template-dependent on T,
|
||||
// and we should perform the call during monomorphization.
|
||||
// CHECK:STDERR: fail_todo_generic_call.carbon:[[@LINE+4]]:16: error: semantics TODO: `unsupported type used as template argument` [SemanticsTodo]
|
||||
// CHECK:STDERR: var v: Cpp.S(T);
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: fail_todo_generic_call.carbon:[[@LINE+4]]:23: error: semantics TODO: `unsupported type used as template argument` [SemanticsTodo]
|
||||
// CHECK:STDERR: var unused v: Cpp.S(T);
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR:
|
||||
var v: Cpp.S(T);
|
||||
var unused v: Cpp.S(T);
|
||||
}
|
||||
|
||||
fn G() {
|
||||
|
||||
@@ -59,7 +59,7 @@ import Cpp library "templates.h";
|
||||
|
||||
class C { adapt {}; }
|
||||
impl C as Core.ImplicitAs(i32) {
|
||||
eval fn Convert[self: Self]() -> i32 { return 123; }
|
||||
eval fn Convert[unused self: Self]() -> i32 { return 123; }
|
||||
}
|
||||
var s: Cpp.Simple({} as C) = Cpp.MakeSimple123();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user