Commit Graph

5283 Commits

Author SHA1 Message Date
Kamil Śliwak
4028125234 fixup! Extract type class member registration into a separate experimental analysis pass 2023-09-28 21:11:00 +02:00
Kamil Śliwak
ea8daf1613 Extract type class member registration into a separate experimental analysis pass 2023-09-28 21:11:00 +02:00
Kamil Śliwak
4960de7b42 Move builtin type class registration to TypeClassRegistration 2023-09-28 21:11:00 +02:00
Kamil Śliwak
201259d50b [TMP] Remove polymorphicInstance() from class type member types 2023-09-28 21:11:00 +02:00
Kamil Śliwak
0819e31de8 Reject duplicate built-in type definitions 2023-09-28 17:43:16 +02:00
Kamil Śliwak
017771032b Replace hard-coded types with __builtin() 2023-09-28 17:43:16 +02:00
Kamil Śliwak
13abd0c9eb Add Builtin AST node 2023-09-28 17:43:16 +02:00
Kamil Śliwak
8304aca1c1 TypeSystemHelper: Add isPrimitiveType() 2023-09-28 17:43:16 +02:00
Kamil Śliwak
353d50b0be Distinct identifiers and tokens for integer type and integer class
- Using the same name causes syntax ambiguities. It's also not allowed for user-defined classes and types.
2023-09-28 15:49:00 +02:00
Kamil Śliwak
271d55cb04 fixup! Type inference draft. 2023-09-28 15:49:00 +02:00
Kamil Śliwak
e5915eac21 fixup! Type inference draft. 2023-09-28 15:49:00 +02:00
Kamil Śliwak
ef4864c576 fixup! Type inference draft. 2023-09-28 15:49:00 +02:00
Kamil Śliwak
ff06778fee fixup! Type inference draft. 2023-09-28 15:49:00 +02:00
Kamil Śliwak
6d43dfbd43 fixup! Type inference draft. 2023-09-28 15:49:00 +02:00
Kamil Śliwak
e3caed0ea4 fixup! Type inference draft. 2023-09-28 15:49:00 +02:00
Kamil Śliwak
1ffd65f089 fixup! Type inference draft. 2023-09-18 18:55:34 +02:00
Kamil Śliwak
6621dc6ba5 fixup! Type inference draft. 2023-09-18 18:55:25 +02:00
Kamil Śliwak
da83b35a71 Separate experimental analysis pass for type class registration 2023-09-14 17:32:51 +02:00
Kamil Śliwak
086c912c65 TypeSystem: make typeClassInfo() public 2023-09-14 17:32:51 +02:00
Kamil Śliwak
acad00f461 fixup! Type inference draft.
Rebase fixes
2023-09-14 07:56:36 +02:00
Kamil Śliwak
0e95ca163c fixup! Type inference draft. 2023-09-14 07:56:36 +02:00
Kamil Śliwak
761f5b342f fixup! Type inference draft. 2023-09-14 07:56:36 +02:00
Nikola Matic
319a6c4999 Move around experimental tests
Exclude list for AST JSON tests

Fix type inference shellcheck failure

Disable shellcheck SC2086
2023-09-14 07:56:33 +02:00
Daniel Kirchner
7c2f5ee171 Remove bogus unused IRVariable implementation (to be redone). 2023-09-13 22:54:10 +02:00
Daniel Kirchner
59ef5919fb Platform fixes. 2023-09-13 22:54:10 +02:00
Daniel Kirchner
5f894722df Add comment. 2023-09-13 22:54:10 +02:00
Daniel Kirchner
fadba0e4b8 error ids 2023-09-13 22:54:10 +02:00
Daniel Kirchner
4fb7e9934e Fix compiler warning. 2023-09-13 22:54:10 +02:00
Daniel Kirchner
5d1d365e2f style fixes 2023-09-13 22:54:10 +02:00
Daniel Kirchner
e4e0472407 Eliminate using namespace std. 2023-09-13 22:54:10 +02:00
Daniel Kirchner
d8a36a1d58 Type inference draft. 2023-09-13 22:54:02 +02:00
Daniel Kirchner
093ec110cf Scanner hack. 2023-09-13 22:39:25 +02:00
Daniel Kirchner
fa815764dd Basic infrastructure. 2023-09-13 22:37:00 +02:00
Matheus Aguiar
14aed39261 Introduce experimental analysis basic infrastructure 2023-09-11 12:29:44 -03:00
Nikola Matic
fdc6699159 Rematerialize zero literals with default cleanup sequence
Add unused pruner step to the end of the default cleanup sequence
2023-09-04 15:40:33 +02:00
Jun Zhang
2cf23e15d8 Bump fmtlib to 9.1.0
In our downstream project, we have two dependencies: solidity and spdlog.
Both of them depend on fmtlib. Unfortunately, the versions of fmtlib they
use do not match, which leads to compilation failure.

The issue arises because spdlog attempts to use solidity's fmtlib, but the
specific version (v8.0.1) has a bug. Ref: https://github.com/gabime/spdlog/issues/2142

While we could keep this change in our own fork, we believe it would
be worthwhile to contribute it back to the upstream since spdlog is a
very popular logging library.

Signed-off-by: Jun Zhang <jun@junz.org>
2023-08-28 13:58:56 +08:00
Kamil Śliwak
9adbced98e Remove parser error recovery mode 2023-08-22 12:00:11 +02:00
Kamil Śliwak
b17757ea17 CompilerStack: Extend inconsistent error sanity check to cover stopAfter: parsing as well 2023-08-21 17:50:41 +02:00
Kamil Śliwak
a15ef59eec Remove the ability to produce an AST in presence of errors in --error-recovery mode
This reverts commit 7fd7cc1e76.
2023-08-21 17:50:41 +02:00
Kamil Śliwak
e8d050a1ce Simplify redundant state check in CompilerStack::analyze() 2023-08-21 17:50:41 +02:00
Nikola Matic
f344dc164e Purge using namespace from libsolidity/lsp and parsing 2023-08-16 17:07:52 +02:00
Nikola Matic
342ba0324f Purge using namespace std from libsolidity/interface 2023-08-15 15:45:15 +02:00
Nikola Matic
d0a5556fd0 Purge using namespace from libsolidity/formal 2023-08-15 14:40:27 +02:00
Nikola Matic
ce423e5ae5 Purge using namespace std from libsolidity/codegen 2023-08-14 21:37:31 +02:00
Nikola Matic
2a2a9d37ee Purge using namespace std from libsolidity/ast 2023-08-14 14:54:58 +02:00
Nikola Matic
de1a017ccb Purge using namespace std from libsolidity/analysis 2023-08-14 11:44:50 +02:00
Kamil Śliwak
4020552e1d SourceReferenceFormatter: Remove the ineffective _withErrorIds parameter from formatExceptionInformation() 2023-08-11 14:15:56 +02:00
Kamil Śliwak
8407c8c615 SourceReferenceFormatter: Support full range of options in formatErrorInformation() 2023-08-11 14:15:56 +02:00
Kamil Śliwak
b7d2c8bb0a SourceReferenceFormatter: Line wrapping and unused includes 2023-08-11 14:15:56 +02:00
Pawel Gebal
6574c10f25 SMTChecker: Visit the condition in for and while loops after loop is unrolled 2023-08-03 13:36:41 +02:00