summaryrefslogtreecommitdiff
path: root/dhall/src/phase/typecheck.rs (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-08-06Add some new tests and implement import alternativesNadrieril1-1/+1
2019-08-06Remove old-style optional literalsNadrieril1-23/+4
2019-08-06Inline headersNadrieril1-0/+1
2019-08-03rustfmtNadrieril1-25/+61
2019-08-03Update dhall-lang submoduleNadrieril1-2/+2
2019-08-03Simplify Const checking logicFintanH1-11/+7
2019-08-01Add typechecking for RecursiveRecordTypeMerge.FintanH1-7/+85
The implementation brings with it intersection_with_key over HashMaps to help with the type checking of records of records. The implementation first checks that the Const values line up with the LHS and RHS. Then checks that combining the records does not result in a FieldCollision. It will finally return the shared Const type of the arguments.
2019-08-01Mark RecursiveRecordMerge as unreachableFintanH1-0/+1
2019-08-01Add the typechecking of RecursiveRecordMerge.FintanH1-8/+73
This introduces an external function for HashMaps to perform an outer join so that you can do a unionWith but with more power by having a new tagert type. Using outer_join and recursively looking through records of records we have an implementation for combining records.
2019-07-31Add unreachable call for RightBasedRecordMerge caseFintanH1-0/+1
2019-07-31Reuse the merge_maps function to implement the right-biased unionFintanH1-6/+6
2019-07-31Add case for RightBasedRecordMerge in the typechecking phase.Fintan Halpenny1-5/+46
The implementation checks the types and kinds of the LHS and RHS. In the happy path it unions the HashMap prefering keys on the RHS over the LHS, and the result is the type of the resulting HashMap. The error cases are: - If the kinds of the records differ it results in a RecordMismatch error. - If either the LHS or RHS are not records it results in a MustCombineRecord error.
2019-05-12clippyNadrieril1-23/+10
2019-05-12Include success or failure prefix in test filteringNadrieril1-4/+4
2019-05-12Implement binary encodingNadrieril1-1/+1
Closes #39
2019-05-09Merge Type and TypedNadrieril1-49/+40
2019-05-09Make visibilities more consistentNadrieril1-9/+6
2019-05-09Rewrite the StaticType trait and everything around itNadrieril1-1/+1
2019-05-09Reduce the distance between Type and TypedNadrieril1-87/+78
2019-05-09Remove TypeIntermediate in favor of special-purpose functionsNadrieril1-214/+183
2019-05-09Small utility SubExpr::from_builtinNadrieril1-9/+3
2019-05-09ExprF need not be generic in LabelNadrieril1-2/+1
2019-05-09Make shift fallible and improve shift ergonomicsNadrieril1-2/+11
2019-05-09Detect duplicate record fields in typecheckNadrieril1-30/+33
2019-05-09Update dhall-lang submoduleNadrieril1-2/+14
2019-05-08Typecheck record projectionNadrieril1-7/+30
2019-05-08Typecheck mergeNadrieril1-12/+87
2019-05-07Don't discard normalization work done by typecheckingNadrieril1-52/+93
2019-05-07Slight improvement to typecheck ergonomicsNadrieril1-59/+28
2019-05-07Unify typecheck and normalization contextsNadrieril1-2/+2
2019-05-07Promote shift and subst_shift to traitsNadrieril1-0/+1
2019-05-07Clean up some of the SubExpr type-changing methodsNadrieril1-3/+3
2019-05-07Unify Type, TypeInternal and TypedNadrieril1-21/+7
2019-05-06Move main datatypes into their own modulesNadrieril1-208/+137
2019-05-06Consolidate errors in the error moduleNadrieril1-103/+11
2019-05-06Reorganize dhall into a phase structureNadrieril1-137/+20
2019-05-06Merge TypedInternal and TypedNadrieril1-9/+0
2019-05-05s/DoubleVar/AlphaVar/Nadrieril1-8/+8
2019-05-05Make Value equality be alpha-equivalenceNadrieril1-7/+4
Closes #66, #65
2019-05-05Use alpha-normalization in equivalence checkingNadrieril1-80/+2
2019-05-05Implement alpha-normalizationNadrieril1-9/+11
Closes #12
2019-05-04Clarify match_vars implementationNadrieril1-12/+12
2019-05-04Revert "Make SubExpr generic in the variable labels type"Nadrieril1-34/+31
This reverts commit 4c159640e5ee77ffa48b85a5bffa56350cf933ef.
2019-05-04Make SubExpr generic in the variable labels typeNadrieril1-31/+34
2019-05-04Keep Spans through normalization and typecheckingNadrieril1-25/+29
2019-05-04Thread Spans through the ASTNadrieril1-1/+1
2019-05-04Move `Note`s into the spine of the ASTNadrieril1-1/+1
2019-05-04Remove dummy lifetimesNadrieril1-93/+74
2019-05-04rustfmtNadrieril1-1/+1
2019-05-04Rename dhall_generator to dhall_proc_macrosNadrieril1-1/+1