Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parsing and type-checking generics #671

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
72adaf1
add support for parsing generic types and functions
koflin Apr 23, 2023
caea3b6
add support for parsing generic types and functions
koflin Apr 23, 2023
4f5555b
Merge branch 'generics' of https://github.com/koflin/gobra into generics
koflin Apr 24, 2023
a90ed72
modified parse tree translator
koflin May 2, 2023
2917a1a
changed typeArgument rule to index instead
koflin May 8, 2023
b1f7878
fix a few things such that compilation can succeed
koflin May 8, 2023
864e185
add some tests for generics
koflin May 15, 2023
f822f7f
started expression typing
koflin May 17, 2023
e8c0846
expression typing of generic function instantiation working
koflin May 24, 2023
e9c0878
implement parse tree translator for instantiated generic types
koflin May 29, 2023
6b10b39
implement typing of generic types
koflin May 30, 2023
7971b35
add first prototype of assignability
koflin May 31, 2023
1159896
implement assignability with type parameters
koflin Jun 5, 2023
ca0c310
changed type constraint to be an interface
koflin Jun 8, 2023
c0b00aa
handle expression typing of integer constants properly
koflin Jun 12, 2023
4253b7e
embed non interface type constraints into interfaces
koflin Jun 12, 2023
4139ed6
implemented satisfiability, comparability, identity, type merging and…
koflin Jun 15, 2023
4aa1b02
implement generic type instantiation with PIndexedExp
koflin Jun 19, 2023
04836b0
add fact test
koflin Jun 22, 2023
162b257
implement simple Go type inference
koflin Jun 22, 2023
b00f8fb
adjust GhostErasureUnitTest
koflin Jun 22, 2023
1ed090d
Trigger CI/CD
koflin Jun 22, 2023
1ed4471
[skip ci] remove lost line
koflin Jul 6, 2023
9e21e21
fix bug introduced in ghost assignability
koflin Jul 6, 2023
26e627c
fix printing of types
koflin Jul 6, 2023
30fe086
fix type inference
koflin Aug 24, 2023
ee2cf0a
Add type parameters to the desugar
koflin Aug 24, 2023
d9f6eed
added some tests from master
koflin Aug 24, 2023
3725a9b
remove change to be consistent with master
koflin Aug 24, 2023
d0fd09a
Revert "remove change to be consistent with master"
koflin Aug 24, 2023
91da1d2
clean up some stuff
koflin Aug 24, 2023
79dd96f
Merge branch 'generics-before-merge' into generics-merged
koflin Aug 24, 2023
a13e324
regenerate parser after merge
koflin Aug 24, 2023
ecfd59e
add dependency
koflin Aug 24, 2023
4bf94a5
adapted member typing unit test
koflin Aug 24, 2023
fc874a6
fix type parameter inference and refactor
koflin Aug 24, 2023
aa375f8
make parameterizable stateless
koflin Aug 25, 2023
f537564
unapplied type args
koflin Aug 25, 2023
b11a8d8
document type set, underlying type and rename syntaxImplements
koflin Aug 25, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add dependency
  • Loading branch information
koflin committed Aug 24, 2023
commit ecfd59e7ede7a81555f9c8351451cbe7470be125
1 change: 1 addition & 0 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -35,6 +35,7 @@ lazy val gobra = (project in file("."))
libraryDependencies += "org.apache.commons" % "commons-text" % "1.9", // for escaping strings in parser preprocessor
libraryDependencies += "commons-codec" % "commons-codec" % "1.15", // for obtaining the hex encoding of a string
libraryDependencies += "org.antlr" % "antlr4-runtime" % "4.12.0",
libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.3.7", // used for EitherT

scalacOptions ++= Seq(
"-encoding", "UTF-8", // Enforce UTF-8, instead of relying on properly set locales