মরিচায় অব্যবহৃত কোড সতর্কতাগুলি কীভাবে অক্ষম করবেন?


228
struct SemanticDirection;

fn main() {}
warning: struct is never used: `SemanticDirection`
 --> src/main.rs:1:1
  |
1 | struct SemanticDirection;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[warn(dead_code)] on by default

গুরুতর যে কোনও কারণে আমি এই সতর্কতাগুলি ফিরিয়ে দেব, তবে আমি কেবল ভাষার সাথে ঝোঁক করছি এবং এটি আমাকে ধীরে ধীরে চালাচ্ছে।

আমি #[allow(dead_code)]আমার কোডে যুক্ত করার চেষ্টা করেছি, তবে এটি কার্যকর হয়নি।

উত্তর:


350

অপরপক্ষে তুমি:

  • allowস্ট্রাক্ট, মডিউল, ফাংশন ইত্যাদিতে একটি বৈশিষ্ট্য যুক্ত করুন .:

    #[allow(dead_code)]
    struct SemanticDirection;
  • একটি ক্রেট-স্তরের allowবৈশিষ্ট্য যুক্ত করুন ; লক্ষ্য করুন !:

    #![allow(dead_code)]
  • এটি পাস rustc:

    rustc -A dead_code main.rs
  • পরিবেশ পরিবর্তনশীল cargoমাধ্যমে এটি পাস করুন RUSTFLAGS:

    RUSTFLAGS="$RUSTFLAGS -A dead_code" cargo build

5
নোট করুন যে শেষটি সমস্ত কিছুর পুনঃসংশোধনকে ট্রিগার করবে।
জোসেফ গারভিন

রুস্টফ্ল্যাগস যা আমার প্রয়োজন ছিল cargo test। ধন্যবাদ।
লাইকবাইক

60

এই সতর্কতাটি নিষ্ক্রিয় করার আরেকটি উপায় হ'ল সনাক্তকারীকে উপসর্গ করা _:

struct _UnusedStruct {
    _unused_field: i32,
}

fn main() {
    let _unused_variable = 10;
}

উদাহরণস্বরূপ, এসডিএল উইন্ডো সহ এটি দরকারী হতে পারে:

let _window = video_subsystem.window("Rust SDL2 demo", 800, 600);

আন্ডারস্কোর সহ উপসর্গ করা নাম হিসাবে একাকী আন্ডারস্কোর ব্যবহার করা থেকে পৃথক। নিম্নলিখিতটি করা উইন্ডোটিকে তত্ক্ষণাত ধ্বংস করে দেবে, যা উদ্দেশ্যযুক্ত আচরণের সম্ভাবনা নেই।

let _ = video_subsystem.window("Rust SDL2 demo", 800, 600);

এই "আন্ডারস্কোরকে অর্পণ করা এটি ধ্বংস করে দেবে" আচরণটি অদ্ভুত বলে মনে হচ্ছে (যদিও আমি সন্দেহ করি না যে আপনি ঠিক বলেছেন) আপনার কি এটির জন্য একটি রেফারেন্স আছে?
মাইকেল অ্যান্ডারসন

4
@ মিশেলএন্ডারসন "আরএআইআই দেখুন। আপনি তার ডেস্ট্রাক্টর পার্শ্ব প্রতিক্রিয়াটির জন্য একটি পরিবর্তনশীল উপস্থিত থাকতে চান, তবে অন্যথায় এটি ব্যবহার করতে পারেন না this এই ব্যবহারের ক্ষেত্রে কেবল _ ব্যবহার করা সম্ভব নয়, কারণ _ কোনও পরিবর্তনশীল বাঁধাই এবং মান নয় বিবৃতি শেষে বাদ দেওয়া হবে। " স্ট্যাকওভারফ্লো.com
ডেভিড জে

9

কোডটি সর্বজনীন করা সতর্কতাগুলিও থামিয়ে দেয়; আপনাকে ঘেরের modজনসাধারণকেও প্রকাশ করতে হবে।

আপনি যখন কোনও লাইব্রেরি লিখছেন তখন এটি উপলব্ধি করে: আপনার কোডটি অভ্যন্তরীণভাবে "অব্যবহৃত" কারণ এটি ক্লায়েন্ট কোড দ্বারা ব্যবহার করার উদ্দেশ্যে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.