mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-07 08:26:11 +00:00
Integration tests for overload disambiguation (Java, Kotlin, C#, C++) and virtual dispatch (Java, TypeScript) with strict toBe() assertions. Unit tests verify exact parameterTypes extraction per language: - Java: ['int'], ['String'], ['int', 'String'] - Kotlin: ['Int'], ['String'] - C#: ['int'], ['string'] - C++: ['int'], ['string'] Fixes discovered during testing: - extractSimpleTypeName: handle Java integral_type/boolean_type/etc - tryOverloadDisambiguation: unwrap C# argument + Kotlin value_argument wrapper nodes; traverse Kotlin call_suffix for value_arguments - Kotlin boxed→primitive normalization (Int→int, Long→long, etc.) - C++ tree-sitter queries: capture pointer-returning inline class methods - extractFunctionName: handle C++ field_identifier for inline methods
31 lines
702 B
Java
31 lines
702 B
Java
package models;
|
|
|
|
// All classes in same file so parentMap captures the extends relationship
|
|
|
|
class Animal {
|
|
public String speak() {
|
|
return "...";
|
|
}
|
|
}
|
|
|
|
class Dog extends Animal {
|
|
public String speak() {
|
|
return "woof";
|
|
}
|
|
|
|
public String fetchBall() {
|
|
return "ball";
|
|
}
|
|
}
|
|
|
|
public class App {
|
|
public void run() {
|
|
// Virtual dispatch: declared as Animal, constructed as Dog
|
|
Animal animal = new Dog();
|
|
animal.fetchBall(); // Only Dog has fetchBall — proves virtual dispatch override
|
|
|
|
// Direct type: no override needed
|
|
Dog dog = new Dog();
|
|
dog.fetchBall(); // Direct resolution to Dog#fetchBall
|
|
}
|
|
}
|