オフィスアワーがそろそろ始まるよ!()

deprecated

deprecated キーワードを付けることで、今後廃止予定などの理由で使用することが非推奨となっている型や関数、メソッドを明示し、それらを使用しているコードをコンパイルする際に警告を表示させることができます。

構造体を非推奨とする場合は次のコードのように deprecated をつけます。

examples/ch04-basic-syntax/src/deprecated.zen:3:10

/// `StructA` is deprecated: use `StructB`.
pub deprecated const StructA = struct {
    x: u8 = 0,
};

test "add deprecated keyword to struct" {
    const st = StructA{};
}

このコードをコンパイルすると次のようにその構造体が非推奨であることを示す警告が表示されます。また、ドキュメンテーションコメント (///) を付けておくことで代替の手段等を表示させることができます。

deprecated.zen:9:16: warning[E10000]: use of deprecated declaration 'StructA'
    const st = StructA{};
               ~
deprecated.zen:4:5: メモ[E00047]: deprecated here
pub deprecated const StructA = struct {
    ~
 StructA is deprecated: use StructB.

examples/ch04-basic-syntax/src/deprecated.zen:12:19

同様に関数定義の場合は次のコードのように deprecated をつけます。

/// Deprecated: use `functionB`
pub deprecated fn functionA(a: u32, b: u32) u32 {
    return a + b;
}

test "add deprecated keyword to function" {
    _ = functionA(1, 2);
}

このコードをコンパイルすると次のように警告が表示されます。

deprecated.zen:18:9: warning[E10000]: use of deprecated declaration 'functionA'
    _ = functionA(1, 2);
        ~
deprecated.zen:13:5: メモ[E00047]: deprecated here
pub deprecated fn functionA(a: u32, b: u32) u32 {
    ~
 Deprecated: use functionB

Chapter 1

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Chapter 6

Chapter 7

Chapter 8

Chapter 9

Chapter 10

Chapter 11

Chapter 12

Chapter 13

Chapter 14

Chapter 15

Appendix

Error Explanation

☰ 人の生きた証は永遠に残るよう ☰
Copyright © 2018-2020 connectFree Corporation. All rights reserved. | 特定商取引法に基づく表示
Zen, the Zen three-circles logo and The Zen Programming Language are trademarks of connectFree corporation in Japan and other countries.