Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Generics and APIs

I think since CDT is incrementing its major version, binary compatibility is not as important as the M6 API freeze.  But this also means that these changes could very well be accomplished in CDT 5.1, if there is such a release.
Cheers,
Pawel

Oberhuber, Martin wrote:
Hello Jason,

I might have missed something here since it's been a while
Since I've been digesting cdt-dev... But in what respect
Do you think that "Genericizing" a method return value is
An API change?

On
http://wiki.eclipse.org/Evolving_Java-based_APIs_2#Turning_non-generic_t
ypes_and_methods_into_generic_ones
I can read "As long as the erasure looks like the corresponding 
declaration prior to generification, the change is binary compatible 
with existing code."

So your change is definitely binary compatible. 

It's not source compatbile, of course, because a (theoretical)
Client that uses a Map<Foo,Bar> and was able to assign your
Returned Map to his Map<Foo,Bar> can no longer do this now.
But that would likely have been an error anyways...

Cheers,
--
Martin Oberhuber, Senior Member of Technical Staff, Wind River
Target Management Project Lead, DSDP PMC Member
http://www.eclipse.org/dsdp/tm
 
 

  
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx 
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Jason Montojo
Sent: Donnerstag, 10. April 2008 21:39
To: cdt-dev@xxxxxxxxxxx
Subject: [cdt-dev] Generics and APIs


Hi everyone,

I've been fixing compiler warnings about generics in the 
language mapping
classes.  This involved having to change a number of method 
signatures to
account for parameterized collections. For example, I changed this in
LanguageManager:

Old:
public Map getContentTypeIdToLanguageDescriptionsMap(){ ... }

New:
public Map<String, ILanguageDescriptor[]>
getContentTypeIdToLanguageDescriptionsMap(){ ... }

Such a change wouldn't break existing clients and it makes 
the API much
easier to work with.  Regardless, it is still an API change.

Should I go ahead and make the changes to the signatures?  Or should I
leave them as-is?  I know we're already past the API freeze 
so I'd like to
know how the community feels about this.

Thanks,
Jason Montojo
IBM CDT Team
IBM Toronto Lab
905-413-5228
jmontojo@xxxxxxxxxx

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

    
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
  


Back to the top