GitNexus/gitnexus/test/fixtures/lang-resolution/java-virtual-dispatch/models/App.java
Gergo Magyar bc771574d8 test(type-resolution): Phase P integration tests + fixes for all overloading languages
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
2026-03-19 22:47:24 +00:00

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
}
}