AgentSkillsCN

autofix-type-conversion

通过添加适当的类型转换或强制类型转换,解决类型不匹配的错误。

SKILL.md
--- frontmatter
name: autofix-type-conversion
description: Fixes type mismatch errors by adding appropriate casts or conversions.

Type Conversion Skill

Fixes compilation errors related to incompatible type assignments or conversions.

Detection Patterns

  • cannot convert 'X' to 'Y'
  • invalid conversion from 'X' to 'Y'
  • no viable conversion
  • incompatible types

Strategy

  1. Identify Types: Extract source and target types from error.
  2. Determine Conversion: Choose appropriate cast or method.
  3. Apply Fix: Add cast or conversion call.

Instructions

Step 1: Parse the Error

Extract:

  • Source type (what you have)
  • Target type (what is expected)
  • Location of the conversion

Step 2: Common Conversions

FromToFix
std::stringconst char*.c_str()
const char*std::stringConstructor or assignment
intenumstatic_cast<EnumType>(val)
void*T*static_cast<T*>(ptr)
Base*Derived*dynamic_cast<Derived*>(base)
int64_tintstatic_cast<int>(val) (with care)

Step 3: Apply Fix

Example: string to const char*

cpp
// Before (error)
void log(const char* msg);
std::string message = "Hello";
log(message);  // ERROR

// After
log(message.c_str());

Example: enum cast

cpp
// Before
int value = 5;
MyEnum e = value;  // ERROR

// After
MyEnum e = static_cast<MyEnum>(value);

Step 4: Verify

Ensure semantic correctness, not just compilation success.