Files
carbon-lang/explorer/testdata/class/new_and_delete.carbon
T
Adrien Leravat b4e3a3e6cc Explorer: fix class destructor not called with heap.Delete (#2546)
This change ensures that DestroyAction is executed for the value being deallocated when calling heap.Delete.

Relates to #2521
2023-01-24 11:34:47 -05:00

37 lines
737 B
Plaintext

// 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
// RUN: %{explorer-run}
// RUN: %{explorer-run-trace}
// CHECK:STDOUT: Allocate A
// CHECK:STDOUT: DESTRUCTOR A
// CHECK:STDOUT: Delete A
// CHECK:STDOUT: DESTRUCTOR A
// CHECK:STDOUT: Return
// CHECK:STDOUT: result: 0
package ExplorerTest api;
class A{
fn Create() -> A {
return {};
}
destructor[self: Self] {
Print("DESTRUCTOR A");
}
}
fn Main() -> i32 {
Print("Allocate A");
var pa: A* = heap.New(A.Create());
Print("Delete A");
heap.Delete(pa);
Print("Return");
return 0;
}