Exemplo n.º 1
0
 @Override
 public Type typecheck(Environment env, Optional<Type> expected) {
   Environment outerEnv =
       env.lookupBinding("oev", TSLBlock.OuterTypecheckBinding.class)
           .map(oeb -> oeb.getStore())
           .orElse(Environment.getEmptyEnvironment());
   Type exnType = exn.typecheck(outerEnv, expected);
   cached = Optional.of(exnType);
   return exnType;
 }
Exemplo n.º 2
0
 public <T> Optional<T> lookupBinding(String name, Class<T> bindingType) {
   if (this.name == null) return Optional.empty();
   if (this.name.equals(name) && bindingType.isAssignableFrom(this.binding.getClass()))
     return Optional.of((T) binding);
   return parentEnvironment.lookupBinding(name, bindingType);
 }