3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-08 00:05:46 +00:00
Commit graph

27 commits

Author SHA1 Message Date
Addison Crump
3bca1fbcd8
Java type generics (#4832)
* Generify, needs some testing and review

* Remove unnecessary change

* Whoops, ? capture that type

* Misread the docs, whoops

* More permissible arithmetic operations

* Implement believed Optimize generics

* Missed a few generics

* More permissible expr for arrays in parameters

* More permissible expr for bitvecs in parameters

* More permissible expr for bools in parameters

* More permissible expr for fps in parameters

* More permissible expr for fprms in parameters

* More permissible expr for ints in parameters

* More permissible expr for reals in parameters

* Undo breaking name conflict due to type erasure; see notes

* Whoops, fix typing of ReExpr

* Sort corrections for Re, Seq

* More permissible expr for regular expressions in parameters

* Fix name conflict between sequences and regular expressions; see notes

* Minor typo, big implications!

* Make Constructor consistent, associate captured types with other unknown capture types for datatype consistency

* More expressive; outputs of multiple datatype definitions are only known to be sort, not capture, and Constructor.of should make a capture

* Be less dumb and just type it a little differently

* Update examples, make sure to type Expr and FuncDecl sort returns

* General fixups

* Downgrade java version, make it only for the generic support, remove var and Expr[]::new construction

* Turns out Java 8 hadn't figured out how to do stream generics yet. Didn't even show up in my IDE, weird
2020-11-30 10:04:54 -08:00
Christoph M. Wintersteiger
d8a02bc040 Fixed AST translation functions in .NET and Java APIs. Fixes #1073. 2017-06-14 13:24:54 +01:00
George Karpenkov
22ffd65d1e Java API: split incRef into incRef and addToReferenceQueue
One method should do one thing only, it's easy to mix things up
otherwise.
2016-06-12 21:01:58 +02:00
George Karpenkov
495ef0f055 Java bindings with no finalizers
Replacing finalizers with PhantomReferences, required quite a lot of
changes to the codebase.
2016-06-12 20:27:01 +02:00
George Karpenkov
dfc80d3b69 Do not needlessly catch exceptions in Java bindings
A lot of existing code in Java bindings catches exceptions just to
silence them later.

This is:
a) Unnecessary: it is OK for a function to throw a RuntimeException
without declaring it.
b) Highly unidiomatic and not recommended by Java experts (see Effective
Java and others)
c) Confusing as has the potential to hide the existing bugs and have
them resurface at the most inconvenient/unexpected moment.
2016-06-12 14:14:11 +02:00
George Karpenkov
f93c41b1be Since classes are non-final "instanceof" check is better in #equals 2016-01-06 11:27:58 +01:00
George Karpenkov
c435bc379b Added braces
Lack of braces on multi-line statements is considered very scary in
Java.
2016-01-06 11:14:53 +01:00
George Karpenkov
27c684f743 AST#hashCode bugfix
Previous implementation always returned zero.
I can only assume that it wanted to cache it as well,
but I haven't implemented that to keep the changes light.
2016-01-06 11:11:01 +01:00
George Karpenkov
4d3675cb4e Consistent #equals() implementation
Also dropped #hashCode(), as it just calls the parent class
implementation.
2016-01-06 11:10:03 +01:00
George Karpenkov
1dcaddbec7 Adding @Override declarations
They are important, as they prevent miss-spelling the parent method  and
/or arguments name.
2016-01-06 11:07:48 +01:00
Christoph M. Wintersteiger
9e756fb6db Warning fix for Comparable<T> in Java API 2015-12-02 14:42:36 +00:00
Christoph M. Wintersteiger
e312b47be6 Bugfix for object finalization in Java API.
Relates to #205 and #245
2015-10-14 12:43:09 +01:00
Christoph M. Wintersteiger
1bad614646 Fixed .equals for AST, FuncDecl, and Sort, and AST.compareTo in Java
Fixes #143
2015-07-14 13:09:00 -07:00
Christoph M. Wintersteiger
b7bb53406f Turned Z3Exception into a RuntimeException such that throws declarations are not needed anymore. Thanks to codeplex user steimann for this suggestion. 2015-04-08 13:16:32 +01:00
Christoph M. Wintersteiger
4bed5183f8 Made DRQ objects public in Java and .NET APIs.
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2015-01-30 21:58:43 -06:00
Christoph M. Wintersteiger
d7a62baef4 Improved memory use of the Java API. Thanks to Joerg Pfaehler for reporting this issue!
+ formatting

Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2015-01-30 21:10:22 -06:00
Christoph M. Wintersteiger
84ed1c19a0 Bugfixes for the Java FPA API
Merge branch 'unstable' of https://git01.codeplex.com/z3 into unstable

Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2015-01-21 19:20:43 +00:00
Christoph M. Wintersteiger
376614a782 Java API: slight overhaul in preparation for the FP additions
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2015-01-03 15:09:52 +00:00
Christoph M. Wintersteiger
ddebb4a69d Documentation fixes
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2014-10-24 19:45:21 +01:00
Christoph M. Wintersteiger
4304012971 Java API: copyright notices
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2014-10-22 16:55:08 +01:00
Christoph M. Wintersteiger
4b18c8f9c4 Java API: syntactic adjustments, getters, setters,
... convenience parameters, etc.

Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2013-01-17 19:31:02 +00:00
Christoph M. Wintersteiger
dd127c2f71 Java API: bugfix
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2013-01-10 18:16:29 +00:00
Christoph M. Wintersteiger
eb3fa254d8 Java API: bugfix
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2012-12-03 17:56:42 +00:00
Christoph M. Wintersteiger
692593baaa Java API: 32-bit issues and bugfixes.
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2012-11-30 22:31:07 +00:00
Christoph M. Wintersteiger
0c1f2a8281 Java API: Added exception wrappers and build dependencies.
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2012-11-30 15:39:25 +00:00
Christoph M. Wintersteiger
eee3bf886d Java API: package renaming.
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2012-11-27 19:09:30 +00:00
Christoph M. Wintersteiger
c6303fc8f5 Java API: a first version that compiles. This is still untested.
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2012-11-27 16:36:50 +00:00